The function to throttle.
Optionalwait: number = 0The number of milliseconds to throttle invocations to; if omitted,
requestAnimationFrame is used (if available).
Optionaloptions: ThrottleOptions = {}The options object.
Returns the new throttled function.
// Avoid excessively updating the position while scrolling.
jQuery(window).on('scroll', throttle(updatePosition, 100))
// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
const throttled = throttle(renewToken, 300000, { 'trailing': false })
jQuery(element).on('click', throttled)
// Cancel the trailing throttled invocation.
jQuery(window).on('popstate', throttled.cancel)
Creates a throttled function that only invokes
funcat most once per everywaitmilliseconds (or once per browser frame). The throttled function comes with acancelmethod to cancel delayedfuncinvocations and aflushmethod to immediately invoke them. Provideoptionsto indicate whetherfuncshould be invoked on the leading and/or trailing edge of thewaittimeout. Thefuncis invoked with the last arguments provided to the throttled function. Subsequent calls to the throttled function return the result of the lastfuncinvocation.Note: If
leadingandtrailingoptions aretrue,funcis invoked on the trailing edge of the timeout only if the throttled function is invoked more than once during thewaittimeout.If
waitis0andleadingisfalse,funcinvocation is deferred until the next tick, similar tosetTimeoutwith a timeout of0.If
waitis omitted in an environment withrequestAnimationFrame,funcinvocation will be deferred until the next frame is drawn (typically about 16ms).See David Corbacho's article for details over the differences between
throttleanddebounce.