forked from arne/asdf-games
70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
|
|
||
|
# 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
|
||
|
|
||
|
```js
|
||
|
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:
|
||
|
|
||
|
```js
|
||
|
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`](http://underscorejs.org/)
|
||
|
which also has an MIT license.
|