• 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 cancel method to cancel delayed invocations and a flush method to immediately invoke them. Provide an options object to indicate that func should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls to the debounced function return the result of the last func invocation.

    Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only if the the debounced function is invoked more than once during the wait timeout.

    See David Corbacho’s article for details over the differences between _.debounce and _.throttle.

    Type Parameters

    • T extends (...args: any) => any

    Parameters

    • func: T

      The function to debounce.

    • wait: undefined | number

      The number of milliseconds to delay.

    • options: DebounceSettingsLeading

      The options object.

      • leading

        Specify invoking on the leading edge of the timeout.

      • maxWait

        The maximum time func is allowed to be delayed before it’s invoked.

      • trailing

        Specify invoking on the trailing edge of the timeout.

    Returns DebouncedFuncLeading<T>

    Returns the new debounced function.

  • Type Parameters

    • T extends (...args: any) => any

    Parameters

    Returns DebouncedFunc<T>