Promise.map
$ npm i -S promise.map
declare function pmap<IN, OUT>(
arr: IN[],
fn: (item: IN, index: number, arr: IN[]) => Promise<OUT> | OUT,
concurrency: number
): Promise<OUT[]>
declare namespace pmap {
export function pmapWorker<IN, OUT, AnyWorker extends Object>(
arr: IN[],
fn: (item: IN, index: number, arr: IN[], worker: AnyWorker) => Promise<OUT>,
workers: AnyWorker[]
): Promise<OUT[]>
}
export = pmap
var p = pmap(
arr,
function (item, index, arr) {
return getOtherPromise(item)
},
concurrency
)
pmapWorker
for cpu heavy work, you can map on workers (WebWorker / Node.js worker_threads)
export function pmapWorker<IN, OUT, AnyWorker extends Object>(
arr: IN[],
fn: (item: IN, index: number, arr: IN[], worker: AnyWorker) => Promise<OUT>,
workers: AnyWorker[]
): Promise<OUT[]>
async.parallelLimit
promise-map
simply use Array.prototype.map
, that lost a concurrency
or parallelLimit
controlthe MIT License http://magicdawn.mit-license.org