Skip to content
Debounce functions. Useful for implementing behavior that should only happen after a repeated action has completed.
JavaScript HTML Makefile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Nov 6, 2012
CONTRIBUTORS Add CONTRIBUTORS and MIT LICENSE file. (#28) May 2, 2019
History.md Release 1.2.0 Aug 14, 2018
LICENSE Add CONTRIBUTORS and MIT LICENSE file. (#28) May 2, 2019
Makefile
Readme.md Added a .debounce member to debounce (#21) Aug 14, 2018
component.json
index.js
package.json Release 1.2.0 Aug 14, 2018
test.html add ability to clear timer (#10) Jul 9, 2016
test.js Ability to force execution (#16) May 11, 2017

Readme.md

debounce

Useful for implementing behavior that should only happen after a repeated action has completed.

Installation

$ component install component/debounce

Or in node:

$ npm install debounce

Example

var debounce = require('debounce');
window.onresize = debounce(resize, 200);

function resize(e) {
  console.log('height', window.innerHeight);
  console.log('width', window.innerWidth);
}

To later clear the timer and cancel currently scheduled executions:

window.onresize.clear();

To execute any pending invocations and reset the timer:

window.onresize.flush();

Alternately, if using newer syntax:

import { debounce } from "debounce";

API

debounce(fn, wait, [ immediate || false ])

Creates and returns a new debounced version of the passed function that will postpone its execution until after wait milliseconds have elapsed since the last time it was invoked.

Pass true for the immediate parameter to cause debounce to trigger the function on the leading edge instead of the trailing edge of the wait interval. Useful in circumstances like preventing accidental double-clicks on a "submit" button from firing a second time.

The debounced function returned has a property 'clear' that is a function that will clear any scheduled future executions of your function.

The debounced function returned has a property 'flush' that is a function that will immediately execute the function if and only if execution is scheduled, and reset the execution timer for subsequent invocations of the debounced function.

License

MIT

Original implementation is from underscore.js which also has an MIT license.

You can’t perform that action at this time.