Socket
Book a DemoInstallSign in
Socket

async-debounce

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

async-debounce

Debounce asynchronous functions

latest
Source
npmnpm
Version
0.0.0
Version published
Weekly downloads
22
-50%
Maintainers
1
Weekly downloads
 
Created
Source

async-debounce

Debounce asynchronous functions.

Debouncing means that given function is only run after no calls to it have happened for x milliseconds. With functions that do asynchronous work, i.e. not finish in the same tick, you also want no calls to happen while the function is currently running - limit the concurrency to one - and rerun with new arguments afterwards.

Example

var debounce = require('async-debounce');

function async(num, done) {
  console.log('start', num);
  setTimeout(function() {
    console.log('done', num);
    done();
  }, 200);
}

var debounced = debounce(async, 50);

console.log('call 1'); debounced(1);
setTimeout(function() { console.log('call 2'); debounced(2) }, 100);
setTimeout(function() { console.log('call 3'); debounced(3) }, 200);

And in the output you can see that the function is run at max once at a time and if the debounce triggers while the function is still running, it will be queued.

$ node example.js
call 1
start 1
call 2
call 3
done 1
start 3
done 3

Installation

Install with npm:

$ npm install async-debounce

Install with component(1):

$ component install juliangruber/async-debounce

API

fn = debounce(fn, interval)

Returns a decorated version of fn that when called calls fn only when no further calls have happended for interval milliseconds and if it's not currently running. When it's done running and a call has happened while it was still running, it's called again with latest arguments.

License

MIT

Keywords

debounce

FAQs

Package last updated on 11 Dec 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts