Creates a debounced function that delays invoking func until after wait
milliseconds have elapsed since the last time the debounced function was
invoked. The debounced function comes with a Debounce.cancel method to cancel
delayed func invocations and a Debounce.flush method to immediately invoke them.
Provide leading and/or trailing to indicate whether func should be
invoked on the leading and/or trailing edge of the wait interval.
The func is invoked with the last arguments provided to the call
function. Subsequent calls to the debounced function return the result of
the last func invocation.
Creates a throttled function that only invokes func at most once per
every wait milliseconds. The throttled function comes with a Throttle.cancel
method to cancel delayed func invocations and a Throttle.flush method to
immediately invoke them. Provide leading and/or trailing to indicate
whether func should be invoked on the leading and/or trailing edge of the wait timeout.
The func is invoked with the last arguments provided to the
throttled function. Subsequent calls to the throttled function return the
result of the last func invocation.