Interval type
Most of the ixfx functions that take millisecond arguments also allow you to provided an Type Flow.Interval . This can make for more readable code.
The Interval
type looks like:
Interval: number | { hours?: number; millis?: number; mins?: number; secs?: number;}
Example usage with Flow.delay:
import { delay } from "https://unpkg.com/ixfx/dist/flow.js"
// instead of these options:delay( () => ..., 300000); // How long is that!?delay( () => ..., 5*60*1000); // A bit better// Use:delay( () => ..., { mins: 5 });
If you just want to give a millisecond value, a bare number can be used.
// These two lines are the samedelay( () => ..., 1000);delay( () => ..., { millis: 1000 });
Any of the time units can be combined to define an interval, with a cumulative effect. Flow.intervalToMs allows you to convert to milliseconds, useful for combining with vanilla JS functions.
import { intervalToMs } from "https://unpkg.com/ixfx/dist/flow.js"const period = { secs: 2, millis: 1 };
// Yields 2001 (2 seconds + 1 millisecond);const ms = intervalToMs(period);setTimeout(someFn, ms);// Or:setTimeout(someFn, intervalToMs({ secs: 2, millis: 1 }));
Human-friendly string
Flow.elapsedToHumanString prints an elapsed time in a human-friendly way:
import { elapsedToHumanString } from "https://unpkg.com/ixfx/dist/flow.js"elapsedToHumanString(100); // "100ms"elapsedToHumanString(1234567); // "20.58mins"