Files
clash-verge-rev-lite/src/utils/debounce.ts
2024-07-08 23:18:06 +08:00

13 lines
356 B
TypeScript

export default function debounce<T extends (...args: any[]) => void>(
func: T,
wait: number
): T {
let timeout: ReturnType<typeof setTimeout> | null = null;
return function (this: any, ...args: Parameters<T>) {
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(() => func.apply(this, args), wait);
} as T;
}