20 lines
393 B
TypeScript
20 lines
393 B
TypeScript
export function debounce<T extends (...args: any[]) => void>(
|
|
fn: T,
|
|
delay: number
|
|
) {
|
|
let timeoutId: NodeJS.Timer | undefined;
|
|
return (...args: Parameters<T>) => {
|
|
if (timeoutId) {
|
|
clearTimeout(timeoutId);
|
|
}
|
|
timeoutId = setTimeout(() => {
|
|
fn(...args);
|
|
timeoutId = undefined;
|
|
}, delay);
|
|
};
|
|
}
|
|
|
|
export function ts() {
|
|
return new Date().getTime();
|
|
}
|