Skip to content

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 same
delay( () => ..., 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 }));

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"