mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-14 01:49:41 +01:00
23 lines
471 B
JavaScript
23 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
|
||
|
*/
|