mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 03:29:46 +00:00
![]() 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> |
||
---|---|---|
.. | ||
index.js | ||
LICENSE | ||
package.json | ||
README.md |
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.