es-toolkit
es-toolkit copied to clipboard
Why doesn't debounce in the main package provide a maxWait option?
Why doesn't debounce in the main package provide a maxWait option?
The maxWait option can help solve the problem of long delays.
const debouncedFn = debounce(fn, 1000);
debouncedFn()
// After 100 ms, debounce reset
debouncedFn();
// After 100 ms, debounce reset
debouncedFn();
// After 100 ms, debounce reset
debouncedFn();
// After 100 ms, debounce reset
debouncedFn();
// Executed in 1500 ms
const debouncedFn = debounce(fn, 1000, { maxWait: 500 });
debouncedFn()
// After 100 ms
debouncedFn();
// After 100 ms
debouncedFn();
// After 100 ms
debouncedFn();
// After 100 ms
debouncedFn();
// After 100 ms
// Executed in 500 ms
My suggestion would be to provide maxWait for the main package debounce, just like compat/debounce.