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

    3.0.0 • Public • Published

    p-reduce

    Reduce a list of values using promises into a promise for a value

    Useful when you need to calculate some accumulated value based on async resources.

    Install

    $ npm install p-reduce
    

    Usage

    import pReduce from 'p-reduce';
    import humanInfo from 'human-info'; // Not a real module
    
    const names = [
    	getUser('sindresorhus').then(info => info.name),
    	'Addy Osmani',
    	'Pascal Hartig',
    	'Stephen Sawchuk'
    ];
    
    const totalAge = await pReduce(names, async (total, name) => {
    	const info = await humanInfo(name);
    	return total + info.age;
    }, 0);
    
    console.log(totalAge);
    //=> 125

    API

    pReduce(input, reducer, initialValue?)

    Returns a Promise that is fulfilled when all promises in input and ones returned from reducer are fulfilled, or rejects if any of the promises reject. The fulfilled value is the result of the reduction.

    input

    Type: Iterable<Promise|any>

    Iterated over serially in the reducer function.

    reducer(previousValue, currentValue, index)

    Type: Function

    Expected to return a value. If a Promise is returned, it's awaited before continuing with the next iteration.

    initialValue

    Type: unknown

    Value to use as previousValue in the first reducer invocation.

    Related


    Get professional support for this package with a Tidelift subscription
    Tidelift helps make open source sustainable for maintainers while giving companies
    assurances about security, maintenance, and licensing for their dependencies.

    Install

    npm i p-reduce

    DownloadsWeekly Downloads

    4,769,482

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    5.89 kB

    Total Files

    5

    Last publish

    Collaborators

    • sindresorhus