陈鹏铭 93064e9f91 首次提交 hai 11 meses
..
.eslintrc 93064e9f91 首次提交 hai 11 meses
.travis.yml 93064e9f91 首次提交 hai 11 meses
LICENSE 93064e9f91 首次提交 hai 11 meses
README.md 93064e9f91 首次提交 hai 11 meses
index.d.ts 93064e9f91 首次提交 hai 11 meses
index.js 93064e9f91 首次提交 hai 11 meses
package.json 93064e9f91 首次提交 hai 11 meses
prettier.config.js 93064e9f91 首次提交 hai 11 meses
test.js 93064e9f91 首次提交 hai 11 meses

README.md

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.
var db = require('just-debounce');

var debounced = db(function (v) {
  console.log(v);
}, 100);

debounced('hi');
debounced('hi');
// logs 'hi' once after 100ms
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
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