es-toolkit icon indicating copy to clipboard operation
es-toolkit copied to clipboard

Why doesn't debounce in the main package provide a maxWait option?

Open ssi02014 opened this issue 5 months ago • 3 comments

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.

ssi02014 avatar Jul 01 '25 08:07 ssi02014