bolt.diy / app /utils /debounce.ts
aproli90's picture
Upload 289 files
2e1ab99 verified
raw
history blame contribute delete
356 Bytes
export function debounce<Args extends any[]>(fn: (...args: Args) => void, delay = 100) {
if (delay === 0) {
return fn;
}
let timer: number | undefined;
return function <U>(this: U, ...args: Args) {
const context = this;
clearTimeout(timer);
timer = window.setTimeout(() => {
fn.apply(context, args);
}, delay);
};
}