it-parallel
Takes an (async) iterable that emits promise-returning functions, invokes them in parallel up to the concurrency limit and emits the results as they become available, optionally in the same order as the input
Install
$ npm install --save it-parallel
Usage
const parallel = require('it-parallel')
const all = require('it-all')
const delay = require('delay')
const input = [
async () => {
console.info('start 1')
await delay(500)
console.info('end 1')
return 1
},
async () => {
console.info('start 2')
await delay(200)
console.info('end 2')
return 2
},
async () => {
console.info('start 3')
await delay(100)
console.info('end 3')
return 3
}
]
const result = await all(parallel(input, {
concurrency: 2
}))
console.info(result)
If order is important, pass ordered: true
as an option:
const result = await all(parallel(input, {
concurrency: 2,
ordered: true
}))
console.info(result)