Trung BìnhJavaScript iconJavaScript

Viết hàm debounce từ đầu (không dùng lodash)?

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.

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript