reduce

Invoke an async reducer function on each item in the given Array, where the reducer transforms an accumulator value based on each item iterated over. Note: because reduce() is order-sensitive, iteration is sequential.

This is an asynchronous version of Array.prototype.reduce()

reduce(array: Array, reducer: Function, accumulator: [any]): any
Parameters
array (Array) The Array to reduce
reducer (Function) Async function, gets passed (accumulator, value, index, array) and returns a new value for accumulator
accumulator ([any]) Optional initial accumulator value
Returns
any: final accumulator value
Example
await reduce(
	['/foo', '/bar', '/baz'],
	async (accumulator, value) => {
		accumulator[v] = await fetch(value);
		return accumulator;
	},
	{}
);

map

Invoke an async transform function on each item in the given Array in parallel, returning the resulting Array of mapped/transformed items.

This is an asynchronous, parallelized version of Array.prototype.map().

map(array: Array, mapper: Function): Array
Parameters
array (Array) The Array to map over
mapper (Function) Async function, gets passed (value, index, array) , returns the new value.
Returns
Array: resulting mapped/transformed values.
Example
await map(
	['foo', 'baz'],
	async v => await fetch(v)
)

filter

Invoke an async filter function on each item in the given Array in parallel, returning an Array of values for which the filter function returned a truthy value.

This is an asynchronous, parallelized version of Array.prototype.filter().

filter
Parameters
array (Array) The Array to filter
filterer (Function) Async function. Gets passed (value, index, array) , returns true to keep the value in the resulting filtered Array.
Returns
Array: resulting filtered values
Example
await filter(
	['foo', 'baz'],
	async v => (await fetch(v)).ok
)

find

Invoke an async function on each item in the given Array in parallel, returning the first element predicate returns truthy for.

This is an asynchronous, parallelized version of Array.prototype.find().

find
Parameters
array (Array) The Array to find
predicate (Function) Async function. Gets passed (value, index, array) , returns true to be the find result.
Returns
any: resulting find value
Example
await find(
	['foo', 'baz', 'root'],
	async v => (await fetch(v)).name === 'baz'
)

every

Checks if predicate returns truthy for all elements of collection in parallel.

This is an asynchronous, parallelized version of Array.prototype.every().

every
Parameters
array (Array) The Array to iterate over.
predicate (Function) Async function. Gets passed (value, index, array) , The function invoked per iteration.
Returns
Boolean: Returns true if all element passes the predicate check, else false.
Example
await every(
	[2, 3],
	async v => (await fetch(v)).ok
)

some

Checks if predicate returns truthy for any element of collection in parallel.

This is an asynchronous, parallelized version of Array.prototype.some().

some
Parameters
array (Array) The Array to iterate over.
filterer (Function) Async function. Gets passed (value, index, array) , The function invoked per iteration.
Returns
Boolean: Returns true if any element passes the predicate check, else false.
Example
await some(
	['foo', 'baz'],
	async v => (await fetch(v)).ok
)

parallel

Invoke all async functions in an Array or Object in parallel, returning the result.

parallel(list: (Array<Function> | Object<Function>)): (Array | Object)
Parameters
list ((Array<Function> | Object<Function>)) Array/Object with values that are async functions to invoke.
Returns
(Array | Object): same structure as list input, but with values now resolved.
Example
await parallel([
	async () => await fetch('foo'),
	async () => await fetch('baz')
])

series

Invoke all async functions in an Array or Object sequentially, returning the result.

series(list: (Array<Function> | Object<Function>)): (Array | Object)
Parameters
list ((Array<Function> | Object<Function>)) Array/Object with values that are async functions to invoke.
Returns
(Array | Object): same structure as list input, but with values now resolved.
Example
await series([
	async () => await fetch('foo'),
	async () => await fetch('baz')
])