Skip to content

Latest commit

 

History

History
102 lines (52 loc) · 2.27 KB

File metadata and controls

102 lines (52 loc) · 2.27 KB
hide_title true
custom_edit_url
pagination_prev
pagination_next

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

Async.mapAsync() method

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.

Signature:

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

Parameters

Parameter

Type

Description

iterable

Iterable<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

options

(IAsyncParallelismOptions & { weighted?: false; }) | undefined

(Optional) options for customizing the control flow

Returns:

Promise<TRetVal[]>

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

Remarks

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.