UNPKG

quasar

Version:

Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time

27 lines (21 loc) 496 B
export default function (fn, wait = 250, immediate) { let timeout function debounced (/* ...args */) { const args = arguments const later = () => { timeout = void 0 if (immediate !== true) { fn.apply(this, args) } } clearTimeout(timeout) if (immediate === true && timeout === void 0) { fn.apply(this, args) } timeout = setTimeout(later, wait) } debounced.cancel = () => { clearTimeout(timeout) } return debounced }