76 lines
1.3 KiB
Markdown
76 lines
1.3 KiB
Markdown
# just-debounce
|
|
|
|
just a basic debounce function
|
|
|
|
# changes
|
|
|
|
- `1.1.0`: added typescript definitions
|
|
|
|
# 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
|
|
- `atStart:` if true, the function will be called at the beginning of the delay rather than the end
|
|
- `guarantee`: additional calls to debounced function will not reset they `delay`. This guarantees
|
|
that if the function is called frequently, it will fire once every `delay` rather than waiting for
|
|
a break in calls.
|
|
|
|
```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
|