7 lines
No EOL
298 B
TypeScript
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);
|
|
};
|
|
} |