Package Exports
- it-parallel
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (it-parallel) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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')
// This can also be an iterator, async iterator, generator, etc
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
}))
// output:
// start 1
// start 2
// end 2
// start 3
// end 3
// end 1
console.info(result) // [2, 3, 1]
If order is important, pass ordered: true
as an option:
const result = await all(parallel(input, {
concurrency: 2,
ordered: true
}))
// output:
// start 1
// start 2
// end 2
// start 3
// end 3
// end 1
console.info(result) // [1, 2, 3]