Prevents function from being called until delay has passed without being called. This prevents excessive computer operations like API calls or heavy calculations.
Curried function with two parameters: function and delay. As long as the debounced function continues to be called within the delay, the original function will not be called.