pp-mapdeprecated

Map over promises concurrently and support promise.allsettled

Usage no npm install needed!

<script type="module">
  import ppMap from 'https://cdn.skypack.dev/pp-map';
</script>

README

NPM

promise-map

npm version build status install size npm downloads

promise-map control promises concurrently and support Promise.all and allSettled. It does not short-circuit when value is rejected if you need.

Install

$ npm install pp-map

Usage

const promiseMap = require('pp-map')

const addOne = n => Promise.resolve(n + 1)

const list = [
  Promise.resolve(3),
  Promise.resolve(4),
  Promise.resolve(5),
  6,
  7,
  8
]

// => [4, 5, 6, 7, 8, 9]
promiseMap(list, x => addOne(x), { concurrency: 3 }).then(o => { console.log(o) })

When value is rejected

const promiseMap = require('pp-map')
const addOne = n => Promise.resolve(n + 1)

const list = [
  Promise.resolve(3),
  Promise.reject(4),   // reject
  Promise.resolve(5),
  6,
  7,
  8
]

// => 'error', 4
promiseMap(list, x => addOne(x), { concurrency: 3 })
  .then(o => { console.log(o) })
  .catch(e => { console.error('error', e) })

//[ { status: 'fulfilled', value: 4 },
//  { status: 'rejected', reason: 5 },
//  { status: 'fulfilled', value: 6 },
//  { status: 'fulfilled', value: 7 } ]
//  { status: 'fulfilled', value: 8 },
//  { status: 'fulfilled', value: 9 } ]
promiseMap(list, x => addOne(x), { concurrency: 3, settled: true })
  .then(o => { console.log(o) })
  .catch(o => { console.error('error', e) })

API

promiseMap(promises, mapper, options?)

promises

A list of promise or any value.

options

options.concurrency: Integer

Default: Infinity
Minimum: 1

options.settled: Boolean