UNPKG

froebel

Version:
23 lines (22 loc) 664 B
export const cancel = Symbol("debounce.cancel"); /** * Creates a debounced function that delays invoking `fun` until `ms` milliseconds * have passed since the last invocation of the debounced function. * * `fun` is invoked with the last arguments passed to the debounced function. * * Calling `[debounce.cancel]()` on the debounced function will cancel the currently * scheduled invocation. */ const debounce = Object.assign((fun, ms) => { let toId; return Object.assign((...args) => { clearTimeout(toId); toId = setTimeout(() => fun(...args), ms); }, { [cancel]: () => clearTimeout(toId) }); }, { cancel }); export default debounce;