kun-galgame-vue/src/utils/debounce.ts

21 lines
475 B
TypeScript
Raw Normal View History

2023-08-24 15:59:37 +00:00
/*
2023-10-23 10:34:28 +00:00
* Debounce function that takes a function and a delay time as parameters
2023-08-24 15:59:37 +00:00
*/
2023-08-24 15:32:56 +00:00
export type DebouncedFunction<T extends (...args: any[]) => any> = (
...args: Parameters<T>
) => void
export function debounce<T extends (...args: any[]) => any>(
func: T,
delay: number
): DebouncedFunction<T> {
let timeoutId: ReturnType<typeof setTimeout>
return (...args) => {
clearTimeout(timeoutId)
timeoutId = setTimeout(() => {
func(...args)
}, delay)
}
}