Skip to content

Run promise-returning & async functions in series

License

Notifications You must be signed in to change notification settings

sindresorhus/p-series

Repository files navigation

p-series

Run promise-returning & async functions in series

Note: You can just use await in a for-loop to get the same behavior. This package was useful before async/await existed.

If you're doing the same work in each function, use p-each-series instead.

See p-all for a concurrent counterpart.

Install

$ npm install p-series

Usage

import pSeries from 'p-series';
import got from 'got';

const tasks = [
	() => got('https://sindresorhus.com'),
	() => checkSomething(),
	() => doSomethingElse()
];

console.log(await pSeries(tasks));

API

pSeries(tasks)

Returns a Promise that is fulfilled when all promises returned from calling the functions in tasks are fulfilled, or rejects if any of the promises reject. The fulfilled value is an Array of the fulfilled values.

tasks

Type: Iterable<Function>

Functions are expected to return a value. If a Promise is returned, it's awaited before continuing with the next task.

Related

  • p-all - Run promise-returning & async functions concurrently with optional limited concurrency
  • p-waterfall - Run promise-returning & async functions in series, each passing its result to the next
  • p-each-series - Iterate over promises serially
  • More…