Debounce trì hoãn execution cho đến khi input ngừng, tránh gọi API quá nhiều lần.
js
function debounce(fn, delay) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
}Ứng dụng: search input (gõ xong 300ms mới gọi API), resize handler, auto-save.
Phỏng vấn thường hỏi viết tay để kiểm tra hiểu closure và timer.
function debounce(fn, delay) { let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => fn(...args), delay); }; } Applications: search input (wait 300ms after typing stops before calling the API), resize handler, auto-save.
Interviewers ask this to verify understanding of closures and timers.