paretojs
Version:
An extremely small, intuitive and fast functional utility library for JavaScript
21 lines (16 loc) • 392 B
text/typescript
const debounce = (
fn: Function,
wait: number = 100,
immediate: boolean = false
) => (...args: any[]) => {
const obj = this;
let timeout;
const delayed = () => {
if (!immediate) fn.apply(obj, args);
timeout = null;
};
if (timeout) clearTimeout(timeout);
else if (immediate) fn.apply(obj, args);
timeout = setTimeout(delayed, wait);
};
export default debounce;