chain-timeout

1.0.6 • Public • Published

chain-timeout

MIT license NPM Version gzip File Size Twitter Follow

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:

// ES6
import chainTimeout from 'chain-timeout'
 
// CJS
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 );
/*
    -> Outputs the string 'hello!' after 2000ms.
    -> Then outputs the string '...' 3000ms after the first message.
    -> Finally outputs 'bye!' when 1000ms have passed since previous function.
*/

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() // Cancels chain

License

MIT © 2019 Jorge Moreno, @alterebro

Package Sidebar

Install

npm i chain-timeout

Weekly Downloads

47

Version

1.0.6

License

MIT

Unpacked Size

7.74 kB

Total Files

7

Last publish

Collaborators

  • alterebro