| Documentation

###

``
Need help reading this?

### 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')
    ])