@libshin/interval
v1.0.4
Published
Create flexible intervals
Downloads
6
Readme
TL;DR
Create flexible intervals
How to use
import interval from "@libshin/interval";
// interval(fn: () => ?number, initialTTL: number, options)
const timer = interval(fn, 500);
// The timer is defined
timer.start(); // Start it (1st call of fn in 500ms)
timer.startNow(); // Start timer and immediately calls fn
timer.stop(); // When the timer is running
timer.restart(); // Stops timer and calls start()
timer.restartNow(); // Stops timer and calls startNow()
Why flexible?
The main difference with regular setTimeout
in JS is that if the callback function fn
returns a number, it will be the new time interval before the next call of fn
.
import interval from "@libshin/interval";
const fn = () => {
console.log('fn is called')
return 1500;
}
const timer = interval(fn, 500);
timer.start()
> "fn is called" // after 500ms
> "fn is called" // after 1500ms
> "fn is called" // after 1500ms
> "fn is called" // after 1500ms
...
Furthermore, start
and restart
can take a initial ttl:
import interval from "@libshin/interval";
const fn = () => {
console.log('fn is called')
}
const timer = interval(fn, 500);
timer.start(1500)
> "fn is called" // after 1500ms
> "fn is called" // after 500ms
> "fn is called" // after 500ms
> "fn is called" // after 500ms
...
Options
| Field | Value | Default | Description |
| -------------- | --------------- | --------------- | ------------------------------------------------------------------------------------------------ |
| ignoreErrors
| boolean
| true
| If set to true
, when the function fn
fails, the timer will continue, otherwise, it will stop |
| errorCb
| error => void
| console.error
| Function that is called when function fn
fails if ignoreErrors
is set to true
|