Files
yaak-mountain-loop/src-web/lib/debounce.ts
2023-03-08 23:20:15 -08:00

12 lines
337 B
TypeScript

export function debounce(fn: (...args: any[]) => any, delay: number) {
let timer: ReturnType<typeof setTimeout>;
const result = function (...args: Parameters<typeof fn>) {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
result.cancel = function () {
clearTimeout(timer);
};
return result;
}