Q21 [Coding]: Write a debounce function implementation.

function debounce(fn, delay) {
  let timer;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, args), delay);
  };
}

Debouncing delays function execution until a specified idle duration has elapsed since the last event invocation.

Key Takeaways
  • Resets timer on every new event trigger call.
  • Ideal for search auto-complete inputs and window resize handlers.
Knowledge Check

When does a debounced function execute after rapid continuous triggers?