31 lines
935 B
Markdown
31 lines
935 B
Markdown
# promise-call-limit
|
|
|
|
Call an array of promise-returning functions, restricting concurrency to a
|
|
specified limit.
|
|
|
|
## USAGE
|
|
|
|
```js
|
|
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.
|