Facebook Pixel

Debounce

JavaScript
medium
20 mins

Create a function debounce that takes two arguments:

  1. fn - the function to debounce.
  2. delay - the number of milliseconds to wait before invoking fn.

The debounce function should return a new function that delays invoking fn until after delay milliseconds have passed since the last time the debounced function was called. This is useful to prevent a function from being called too frequently, such as on every keystroke or window resize event.

Example Inputs & Outputs

const debouncedLog = debounce(console.log, 300); debouncedLog("Hello"); // waits 300ms debouncedLog("Hi"); // resets timer debouncedLog("Hey"); // resets timer again // Only "Hey" will be logged after 300ms if no further calls are made

Constraints & Edge Cases

  • fn can be any callable function.
  • delay is a non-negative integer in milliseconds.
  • The latest arguments to the debounced function should be used when fn is eventually called.
  • The this context should be preserved.

Companies:

twitter
stripe
uber
ola

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.