debounce-by-key
v0.1.1
Published
useful for employing a group of functions within a single debounce scope and/or employing a single function across a group of debounce scopes
Downloads
4
Readme
debounce-by-key
useful for employing a group of functions within a single debounce scope and/or employing a single function across a group of debounce scopes
Installation
npm install debounce-by-key --save
Usage
This module provides a single function that takes a single options arg (optional) and returns a Promise
that resolves if the debounce state is non-blocking, and rejects if its blocking.
debounce([options])
- options
{Object}
- return:
Promise
[options]
key
the string identifier of the debounce scope. Defaults to''
duration
the time in milliseconds of the blocking state. Defaults to1000
Example
const debounce = require('debounce-by-key')
const sayHi = ()=>{console.log('hello world')}
/* no-args */
debounce().then(sayHi)
debounce().then(sayHi) //⛔ will not run
/* multiple functions, single scope */
debounce({key:'say hi'}).then(() => console.log('hola mundo') )
debounce({key:'say hi'}).then(() => console.log('hello world') ) //⛔ will not run
debounce({key:'say hi'}).then(() => console.log('bonjour monde') ) //⛔ will not run
/* single function, mutliple scopes */
debounce({key:'say hi 1'}).then(sayHi)
debounce({key:'say hi 2'}).then(sayHi) //✅ will run
/* duration arg */
const d = () => debounce({key:'say hi 3', duration:1000}).then(sayHi)
d()
setTimeout(d,500) //⛔ will not run
setTimeout(d,1500) //✅ will run
Tests
npm install
npm test
Dependencies
None
Dev Dependencies
- tap: A Test-Anything-Protocol library
License
ISC