js-debounce.js
function debounce(fn, wait = 300) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), wait);
};
}
const log = debounce((q) => console.log("search for", q), 200);
log("p"); log("pa"); log("pan"); // only "pan" is logged