chain-timeout
Execute chained setTimeout functions using requestAnimationFrame to improve performance.
By using requestAnimationFrame
the timeout defined will only run when the document is active, if the document browser or tab is placed on background the script won't be executed therefore performance will not be affected and battery life will be saved :)
Install
$ npm install chain-timeout
This module is available in three flavours:
Flavour | Path |
---|
ES Module | dist/chain-timeout.mjs |
CommonJS | dist/chain-timeout.js |
UMD | dist/chain-timeout.min.js |
Include chain-timeout
:
import chainTimeout from 'chain-timeout'
const chainTimeout = require('chain-timeout');
To use it on the browser include the UMD minified file ( dist/chain-timeout.min.js
).
You can also add the script directly from unpkg.com:
<script src="https://unpkg.com/chain-timeout"></script>
Usage
Include it and create a chain :
import chainTimeout from 'chain-timeout';
const chain = chainTimeout( fn, delay ).chainTimeout( fn, delay )...
Example :
const chain = chainTimeout( () => console.log('hello!'), 2000 )
.chainTimeout( () => console.log('...'), 3000 )
.chainTimeout( () => console.log('bye!'), 1000 );
API
chainTimeout(function, delay)
Returns an Object
with chainTimeout()
itself to get chained and clear()
method to cancel the execution chain.
— function
Type : function
. Function to get executed once the time set on the delay is reached
— delay
Type : number
. Number defining the milliseconds to wait before the function is executed.
chain.clear()
Cancels the execution chain.
const chain = chainTimeout(fn, delay)
.chainTimeout(fn, delay)
.chainTimeout(fn, delay):
chain.clear()
License
MIT © 2019 Jorge Moreno, @alterebro