turbopug
Version:
No-junk JS component library with insignificant weight. All in one mush: Web-Components, Localization, Routing, Reactive binding, Debounce, Unique IDs, PSW hashing
15 lines (14 loc) • 352 B
JavaScript
const Debounced = (callback, duration, immediate) => {
let timeout;
return (...args) => {
const later = () => {
timeout = null;
if (!immediate) callback(...args);
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, duration);
if (callNow) callback(...args);
};
};
export default Debounced;