Skip to main content

Home > @rushstack/node-core-library > Async > mapAsync

Async.mapAsync() method

This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.

Given an input array and a callback function, invoke the callback to start a promise for each element in the array. Returns an array containing the results.


static mapAsync<TEntry, TRetVal>(iterable: Iterable<TEntry> | AsyncIterable<TEntry>, callback: (entry: TEntry, arrayIndex: number) => Promise<TRetVal>, options?: IAsyncParallelismOptions | undefined): Promise<TRetVal[]>;


iterableIterable<TEntry> | AsyncIterable<TEntry>the array of inputs for the callback function
callback(entry: TEntry, arrayIndex: number) => Promise<TRetVal>a function that starts an asynchronous promise for an element from the array
optionsIAsyncParallelismOptions | undefined(Optional) options for customizing the control flow



an array containing the result for each callback, in the same order as the original input array


This API is similar to the system Array#map, except that the loop is asynchronous, and the maximum number of concurrent promises can be throttled using IAsyncParallelismOptions.concurrency.

If callback throws a synchronous exception, or if it returns a promise that rejects, then the loop stops immediately. Any remaining array items will be skipped, and overall operation will reject with the first error that was encountered.