Socket
Socket
Sign inDemoInstall

p-reduce

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    p-reduce

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


Version published
Weekly downloads
4.4M
decreased by-1.01%
Maintainers
1
Install size
6.75 kB
Created
Weekly downloads
 

Package description

What is p-reduce?

The p-reduce npm package is a utility that allows you to reduce a list of values using promises in series. It is particularly useful when you need to perform a series of asynchronous operations in sequence and combine their results into a single value.

What are p-reduce's main functionalities?

Promise Reduction

This feature allows you to reduce an array of promises to a single promise that resolves to a value. The code sample demonstrates how to sum a series of numbers wrapped in promises.

const pReduce = require('p-reduce');
const promiseArray = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
pReduce(promiseArray, (total, value) => Promise.resolve(total + value), 0).then(result => console.log(result)); // 6

Other packages similar to p-reduce

Readme

Source

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.

  • p-each-series - Iterate over promises serially
  • p-map-series - Map over promises serially
  • p-map - Map over promises concurrently
  • More…

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.

Keywords

FAQs

Last updated on 08 Apr 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc