revenge-bundle-next/lib/utils/src/callbacks.ts
2025-04-15 14:22:41 +07:00

10 lines
347 B
TypeScript

export function debounce<F extends (...args: any[]) => any>(func: F, timeout: number) {
let timer: Parameters<typeof clearTimeout>[0]
return (...args: Parameters<F>) =>
new Promise(rs => {
clearTimeout(timer)
timer = setTimeout(() => {
rs(func(...args))
}, timeout)
})
}