UNPKG

@fbltd/async

Version:

Miscellaneous async utils

17 lines (16 loc) 418 B
export function debounce(fn, ms = 0) { let id; function cancelPrevious() { id !== void 0 && clearTimeout(id); } ms = Math.max(ms, 0); const functionToReturn = ((...args) => { cancelPrevious?.(); id = setTimeout(() => { fn(...args); id = undefined; }, ms); }); functionToReturn.dispose = cancelPrevious; return functionToReturn; }