debounce
The debounce function is commonly used to ensure that time-consuming tasks do
not fire too often. It waits for a set interval after the last invocation before
executing the callback function.
If immediate is set to true, the original function will be called
immediately. However, the function won't be called again unless the debounced
function stops being invoked for the specified duration.
Import
import { debounce } from '@fullstacksjs/toolbox';Signature
function debounce<F>(
options: { delay: number; immediate?: boolean },
cb: F,
): (...args: Parameters<F>) => void {}Examples
function log(id: number) {
console.log(id);
}
const debounced = debounce({ delay: 1000 }, log);
debounced(1); // ignored
debounced(2); // ignored
debounced(3); // ignored
setTimeout(function () {
debounced(4); // 4
debounced(5); // ignored
}, 1000);
const debounced = debounce({ delay: 1000, immediate: true }, log);
debounced(1); // 1
debounced(2); // ignored
debounced(3); // ignored
setTimeout(function () {
debounced(4); // 4
debounced(5); // ignored
}, 1000);