Handling Forms & User Input

Why use debouncing with input validation?
const debounce = (fn, delay) => {
  let timeoutId;
  return (...args) => {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => fn(...args), delay);
  };
};

input.addEventListener('input', debounce(e => {
  validateInput(e.target);
}, 500));
Next Question (14/20)