You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.3 KiB

# 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