Asynchronous Array Utilities (for await)
npm install asyncroasyncro  The same map(), reduce() & filter() you know and love, but with async iterator functions!
Do fetch() networking in loops, resolve Promises, anything async goes. Performance-friendly _by default_.
Here's what it looks like:

*

*
``sh`
npm install --save asyncro
`js
import { map } from 'asyncro';
async function example() {
return await map(
['foo', 'bar', 'baz'],
async name => fetch('./'+name)
)
}
`
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()
Parameters
- array Array The Array to reducereducer
- Function Async function, gets passed (accumulator, value, index, array) and returns a new value for accumulatoraccumulator
- \[any] Optional initial accumulator value
Examples
`javascript`
await reduce(
['/foo', '/bar', '/baz'],
async (accumulator, value) => {
accumulator[v] = await fetch(value);
return accumulator;
},
{}
);
Returns any final accumulator value
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().
Parameters
- array Array The Array to map overmapper
- Function Async function, gets passed (value, index, array), returns the new value.
Examples
`javascript`
await map(
['foo', 'baz'],
async v => await fetch(v)
)
Returns Array resulting mapped/transformed values.
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().
Parameters
- array Array The Array to filterfilterer
- Function Async function. Gets passed (value, index, array), returns true to keep the value in the resulting filtered Array.
Examples
`javascript`
await filter(
['foo', 'baz'],
async v => (await fetch(v)).ok
)
Returns Array resulting filtered values
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().
Parameters
- array Array The Array to findpredicate
- Function Async function. Gets passed (value, index, array), returns true to be the find result.
Examples
`javascript`
await find(
['foo', 'baz', 'root'],
async v => (await fetch(v)).name === 'baz'
)
Returns any resulting find value
Checks if predicate returns truthy for all elements of collection in parallel.
> This is an asynchronous, parallelized version of Array.prototype.every().
Parameters
- array Array The Array to iterate over.predicate
- Function Async function. Gets passed (value, index, array), The function invoked per iteration.
Examples
`javascript`
await every(
[2, 3],
async v => (await fetch(v)).ok
)
Returns Boolean Returns true if all element passes the predicate check, else false.
Checks if predicate returns truthy for any element of collection in parallel.
> This is an asynchronous, parallelized version of Array.prototype.some().
Parameters
- array Array The Array to iterate over.filterer
- Function Async function. Gets passed (value, index, array), The function invoked per iteration.
Examples
`javascript`
await some(
['foo', 'baz'],
async v => (await fetch(v)).ok
)
Returns Boolean Returns true if any element passes the predicate check, else false.
Invoke all async functions in an Array or Object in parallel, returning the result.
Parameters
- list (Array<Function> | Object<Function>) Array/Object with values that are async functions to invoke.
Examples
`javascript`
await parallel([
async () => await fetch('foo'),
async () => await fetch('baz')
])
Returns (Array \| Object) same structure as list input, but with values now resolved.
Invoke all async functions in an Array or Object sequentially, returning the result.
Parameters
- list (Array<Function> | Object<Function>) Array/Object with values that are async functions to invoke.
Examples
`javascript`
await series([
async () => await fetch('foo'),
async () => await fetch('baz')
])
Returns (Array \| Object) same structure as list` input, but with values now resolved.