Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sindresorhus/p-waterfall

Run promise-returning & async functions in series, each passing its result to the next
https://github.com/sindresorhus/p-waterfall

Last synced: about 1 month ago
JSON representation

Run promise-returning & async functions in series, each passing its result to the next

Awesome Lists containing this project

README

        

# p-waterfall

> Run promise-returning & async functions in series, each passing its result to the next

## Install

```
$ npm install p-waterfall
```

## Usage

```js
import pWaterfall from 'p-waterfall';

const tasks = [
initialValue => getEmoji(initialValue),
previousValue => `I ❀️ ${previousValue}`
];

console.log(await pWaterfall(tasks, 'unicorn'));
//=> 'I ❀️ πŸ¦„'
```

## API

### pWaterfall(tasks, initialValue?)

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 the value returned from the last task.

#### tasks

Type: `Iterable`

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

#### initialValue

Type: `unknown`

Value to use as `previousValue` in the first task.

## Related

- [p-series](https://github.com/sindresorhus/p-series) - Run promise-returning & async functions in series
- [p-each-series](https://github.com/sindresorhus/p-each-series) - Iterate over promises serially
- [More…](https://github.com/sindresorhus/promise-fun)

---



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.