node/deps/npm/node_modules/promise-call-limit
Myles Borins 2e54524955
deps: update npm to 7.0.0-rc.3
PR-URL: https://github.com/nodejs/node/pull/35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2020-10-07 09:59:49 -04:00
..
index.js deps: update npm to 7.0.0-rc.3 2020-10-07 09:59:49 -04:00
LICENSE deps: update npm to 7.0.0-rc.3 2020-10-07 09:59:49 -04:00
package.json deps: update npm to 7.0.0-rc.3 2020-10-07 09:59:49 -04:00
README.md deps: update npm to 7.0.0-rc.3 2020-10-07 09:59:49 -04:00

promise-call-limit

Call an array of promise-returning functions, restricting concurrency to a specified limit.

USAGE

const promiseCallLimit = require('promise-call-limit')
const things = getLongListOfThingsToFrobulate()

// frobulate no more than 4 things in parallel
promiseCallLimit(things.map(thing => () => frobulateThing(thing)), 4)
  .then(results => console.log('frobulated 4 at a time', results))

API

promiseCallLimit(queue Array<() => Promise>, limit = defaultLimit)

The default limit is the number of CPUs on the system - 1, or 1.

The reason for subtracting one is that presumably the main thread is taking up a CPU as well, so let's not be greedy.

Note that the array should be a list of Promise-returning functions, not Promises themselves. If you have a bunch of Promises already, you're best off just calling Promise.all().

The functions in the queue are called without any arguments.