22 lines
471 B
JavaScript
22 lines
471 B
JavaScript
/**
|
|
* @param {Function} fn
|
|
* @param {number} t milliseconds
|
|
* @return {Function}
|
|
*/
|
|
var debounce = function(fn, t) {
|
|
let timeout = null;
|
|
return function(...args) {
|
|
clearTimeout(timeout);
|
|
timeout = setTimeout(() => {
|
|
timeout = null;
|
|
fn(...args);
|
|
}, t);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* const log = debounce(console.log, 100);
|
|
* log('Hello'); // cancelled
|
|
* log('Hello'); // cancelled
|
|
* log('Hello'); // Logged at t=100ms
|
|
*/
|