All Projects → developit → Asyncro

developit / Asyncro

⛵️ Beautiful Array utilities for ESnext async/await ~

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Asyncro

ProtoPromise
Robust and efficient library for management of asynchronous operations in C#/.Net.
Stars: ✭ 20 (-95.89%)
Mutual labels:  promises, promise, parallel
Tascalate Concurrent
Implementation of blocking (IO-Bound) cancellable java.util.concurrent.CompletionStage and related extensions to java.util.concurrent.ExecutorService-s
Stars: ✭ 144 (-70.43%)
Mutual labels:  asynchronous, promise, promises
P Map
Map over promises concurrently
Stars: ✭ 639 (+31.21%)
Mutual labels:  promise, parallel, promises
Metasync
Asynchronous Programming Library for JavaScript & Node.js
Stars: ✭ 164 (-66.32%)
Mutual labels:  asynchronous, promise, parallel
Rubico
[a]synchronous functional programming
Stars: ✭ 133 (-72.69%)
Mutual labels:  asynchronous, promise, parallel
do
Simplest way to manage asynchronicity
Stars: ✭ 33 (-93.22%)
Mutual labels:  asynchronous, promise, parallel
future.callr
🚀 R package future.callr: A Future API for Parallel Processing using 'callr'
Stars: ✭ 52 (-89.32%)
Mutual labels:  promises, asynchronous
combine-promises
Like Promise.all(array) but with an object instead of an array.
Stars: ✭ 181 (-62.83%)
Mutual labels:  promises, promise
promise
Common interface for simple asynchronous placeholders.
Stars: ✭ 66 (-86.45%)
Mutual labels:  asynchronous, promise
futura
Asynchronous Swift made easy. The project was made by Miquido. https://www.miquido.com/
Stars: ✭ 34 (-93.02%)
Mutual labels:  asynchronous, promise
relaks
Asynchrounous React component
Stars: ✭ 49 (-89.94%)
Mutual labels:  asynchronous, promise
swear
🙏 Flexible promise handling with Javascript
Stars: ✭ 56 (-88.5%)
Mutual labels:  promises, promise
executive
🕴Elegant command execution for Node.
Stars: ✭ 37 (-92.4%)
Mutual labels:  promise, parallel
cephgeorep
An efficient unidirectional remote backup daemon for CephFS.
Stars: ✭ 27 (-94.46%)
Mutual labels:  asynchronous, parallel
Promise
Asynchronous Programming with Promises
Stars: ✭ 15 (-96.92%)
Mutual labels:  asynchronous, promise
lightflow
A tiny Promise-inspired control flow library for browser and Node.js.
Stars: ✭ 29 (-94.05%)
Mutual labels:  promise, parallel
doasync
Promisify functions and objects immutably
Stars: ✭ 27 (-94.46%)
Mutual labels:  promises, promise
Creed
Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land
Stars: ✭ 265 (-45.59%)
Mutual labels:  asynchronous, promise
Zio
ZIO — A type-safe, composable library for async and concurrent programming in Scala
Stars: ✭ 3,167 (+550.31%)
Mutual labels:  asynchronous, promises
Yaku
A lightweight promise library
Stars: ✭ 276 (-43.33%)
Mutual labels:  promise, promises

asyncro NPM travis-ci

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:

Asyncro Example

What's in the Box

Asyncro Example 2

Installation

npm install --save asyncro

Import and Usage Example

import { map } from 'asyncro';

async function example() {
	return await map(
		['foo', 'bar', 'baz'],
		async name => fetch('./'+name)
	)
}

API

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()

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

Examples

await reduce(
	['/foo', '/bar', '/baz'],
	async (accumulator, value) => {
		accumulator[v] = await fetch(value);
		return accumulator;
	},
	{}
);

Returns any final accumulator value

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().

Parameters

  • array Array The Array to map over
  • mapper Function Async function, gets passed (value, index, array), returns the new value.

Examples

await map(
	['foo', 'baz'],
	async v => await fetch(v)
)

Returns Array resulting mapped/transformed values.

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().

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.

Examples

await filter(
	['foo', 'baz'],
	async v => (await fetch(v)).ok
)

Returns Array resulting filtered values

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().

Parameters

  • array Array The Array to find
  • predicate Function Async function. Gets passed (value, index, array), returns true to be the find result.

Examples

await find(
	['foo', 'baz', 'root'],
	async v => (await fetch(v)).name === 'baz'
)

Returns any resulting find value

every

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

await every(
	[2, 3],
	async v => (await fetch(v)).ok
)

Returns Boolean Returns true if all element passes the predicate check, else false.

some

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

await some(
	['foo', 'baz'],
	async v => (await fetch(v)).ok
)

Returns Boolean Returns true if any element passes the predicate check, else false.

parallel

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

Parameters

Examples

await parallel([
	async () => await fetch('foo'),
	async () => await fetch('baz')
])

Returns (Array | Object) same structure as list input, but with values now resolved.

series

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

Parameters

Examples

await series([
	async () => await fetch('foo'),
	async () => await fetch('baz')
])

Returns (Array | Object) same structure as list input, but with values now resolved.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].