A tiny fully-featured debounce and throttle implementation.
npm install dettleA tiny fully-featured debounce and throttle implementation.
``sh`
npm install --save dettle
`ts
import {debounce, throttle} from 'dettle';
const fn = () => console.log ( 'Fired!' );
// Debouncing
// The following options are supported:
// leading: whether the function should be called when the timeout is created, defaults to falsetrailing
// : whether the function should be called when the timeout expires, defaults to truemaxWait
// : the maximum amount of time that can pass before the function is called, defaults to Infinity
const debounced = debounce ( fn, 1000, {
leading: false,
trailing: true,
maxWait: Infinity
});
debounced (); // Schedule function for execution
debounced (); // Re-schedule function for execution
debounced.flush (); // Execute the function immediately, if there's a scheduled execution
debounced.cancel (); // Cancel the scheduled execution
// Throttling
// The API for throttling is basically the same, except that:
// - leading: is true by default rather than falsemaxWait
// - : is set implicitly for you to be equal to the wait time
const throttled = throttle ( fn, 1000, {
leading: true,
trailing: true
});
throttled (); // Call the function immediately
throttled (); // Schedule function for execution
throttled.flush (); // Execute the function immediately, if there's a scheduled execution
throttled.cancel (); // Cancel the scheduled execution
``
MIT © Fabio Spampinato