Source: https://www.freecodecamp.org/news/javascript-debounce-example/
function debounce(func: Function, timeout = 300) { let applyAgain = false; let timer: number; return (...args: any) => { if (!timer) { func.apply(this, args); } else { applyAgain = true; } clearTimeout(timer); timer = setTimeout(() => { timer = undefined; if (applyAgain) { func.apply(this, args); applyAgain = false; } }, timeout); }; }
503600cookie-checkTypescript / javascript minimal debounce