Nondeterministic Polynomial Munchies

    p-debounce
    TypeScript icon, indicating that this package has built-in type declarations

    4.0.0 • Public • Published

    p-debounce

    Debounce promise-returning & async functions

    Install

    $ npm install p-debounce
    

    Usage

    import pDebounce from 'p-debounce';
    
    const expensiveCall = async input => input;
    
    const debouncedFn = pDebounce(expensiveCall, 200);
    
    for (const number of [1, 2, 3]) {
    	console.log(await debouncedFn(number));
    }
    //=> 3
    //=> 3
    //=> 3

    API

    pDebounce(fn, wait, options?)

    Returns a function that delays calling fn until after wait milliseconds have elapsed since the last time it was called.

    fn

    Type: Function

    Promise-returning/async function to debounce.

    wait

    Type: number

    Milliseconds to wait before calling fn.

    options

    Type: object

    before

    Type: boolean
    Default: false

    Call the fn on the leading edge of the timeout. Meaning immediately, instead of waiting for wait milliseconds.

    pDebounce.promise(function_)

    Execute function_ unless a previous call is still pending, in which case, return the pending promise. Useful, for example, to avoid processing extra button clicks if the previous one is not complete.

    function_

    Type: Function

    Promise-returning/async function to debounce.

    import {setTimeout as delay} from 'timers/promises';
    import pDebounce from 'p-debounce';
    
    const expensiveCall = async value => {
    	await delay(200);
    	return value;
    }
    
    const debouncedFn = pDebounce.promise(expensiveCall);
    
    for (const number of [1, 2, 3]) {
    	console.log(await debouncedFn(number));
    }
    //=> 1
    //=> 2
    //=> 3

    Related

    • p-throttle - Throttle promise-returning & async functions
    • p-limit - Run multiple promise-returning & async functions with limited concurrency
    • p-memoize - Memoize promise-returning & async functions
    • debounce-fn - Debounce a function
    • More…

    Install

    npm i p-debounce

    DownloadsWeekly Downloads

    54,905

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    7.3 kB

    Total Files

    5

    Last publish

    Collaborators

    • sindresorhus