54 lines
1.1 KiB
Markdown
54 lines
1.1 KiB
Markdown
just-debounce
|
|
=============
|
|
|
|
just a basic debounce function
|
|
|
|
# Why?
|
|
I searched npm and the first 3 pages of results for "debounce" did not have a
|
|
small correctly implemented version of debounce
|
|
|
|
# Usage
|
|
|
|
### arguments
|
|
* `fn`: the function to debounce
|
|
* `delay`: debounce delay in ms
|
|
* `at_start:` if true, the function will be called at the beginning of the
|
|
delay rather than the end
|
|
* `guarantee`: ensures the time before the next call the `fn` is not greater \
|
|
than the delay period.
|
|
|
|
```javascript
|
|
var db = require('just-debounce')
|
|
|
|
var debounced = db(function(v) {console.log(v)}, 100)
|
|
|
|
debounced('hi')
|
|
debounced('hi')
|
|
// logs 'hi' once after 100ms
|
|
```
|
|
|
|
```javascript
|
|
var db = require('just-debounce')
|
|
|
|
var debounced = db(function(v) {console.log(v)}, 100, true)
|
|
|
|
debounced('hi')
|
|
debounced('hi')
|
|
// logs 'hi' once right away, but not a second time. calling after 100ms will log again
|
|
```
|
|
|
|
```javascript
|
|
var db = require('just-debounce')
|
|
|
|
var debounced = db(function(v) {console.log(v)}, 100, false, true)
|
|
|
|
debounced('hi')
|
|
setTimeout(function() {debounced('hi2')}, 80)
|
|
|
|
// logs 'hi2' once 100ms after the first call to debounced
|
|
```
|
|
|
|
# license
|
|
|
|
MIT
|