frontend/src/lib/misc.ts

7 lines
No EOL
298 B
TypeScript

export function debounce<T extends (...args: any[]) => void>(fn: T, delay = 200) {
let timer: ReturnType<typeof setTimeout> | null = null;
return (...args: Parameters<T>) => {
if (timer) clearTimeout(timer);
timer = setTimeout(async () => await fn(...args), delay);
};
}