
Security News
Bun 1.2.19 Adds Isolated Installs for Better Monorepo Support
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
The asyncro npm package provides utilities for working with asynchronous code in JavaScript, making it easier to manage and control asynchronous operations. It offers a variety of functions to handle promises and async/await patterns more effectively.
map
The `map` function allows you to apply an asynchronous function to each item in an array and returns a promise that resolves when all the operations are complete. This is useful for performing parallel asynchronous operations on array elements.
const asyncro = require('asyncro');
async function example() {
const numbers = [1, 2, 3, 4, 5];
const results = await asyncro.map(numbers, async (num) => {
return num * 2;
});
console.log(results); // [2, 4, 6, 8, 10]
}
example();
series
The `series` function executes an array of asynchronous functions in series, meaning one after the other. It returns a promise that resolves with an array of results once all functions have completed. This is useful for tasks that need to be performed sequentially.
const asyncro = require('asyncro');
async function example() {
const tasks = [
async () => { return 1; },
async () => { return 2; },
async () => { return 3; }
];
const results = await asyncro.series(tasks);
console.log(results); // [1, 2, 3]
}
example();
parallel
The `parallel` function executes an array of asynchronous functions in parallel, meaning all at the same time. It returns a promise that resolves with an array of results once all functions have completed. This is useful for tasks that can be performed concurrently.
const asyncro = require('asyncro');
async function example() {
const tasks = [
async () => { return 1; },
async () => { return 2; },
async () => { return 3; }
];
const results = await asyncro.parallel(tasks);
console.log(results); // [1, 2, 3]
}
example();
The async package provides a comprehensive set of functions for working with asynchronous JavaScript. It includes utilities for parallel, series, and waterfall execution, among others. Compared to asyncro, async offers a broader range of utilities and is more established in the community.
Bluebird is a fully-featured promise library that provides powerful extensions to the native Promise API. It includes utilities for managing asynchronous code, such as `map`, `reduce`, and `each`. Bluebird is known for its performance and extensive feature set, making it a strong alternative to asyncro.
The p-map package allows you to map over promises concurrently with a specified concurrency limit. It is a lightweight and focused alternative to asyncro's map function, providing fine-grained control over concurrency.
asyncro
It's the map()
, reduce()
& filter()
you know, but with support for async callbacks!
npm install --save asyncro
import { map } from 'asyncro';
async function example() {
return await map(
['foo', 'bar'],
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 accumulator
accumulator
[Any] Optional initial accumulator valueExamples
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
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
await filter(
['foo', 'baz'],
async v => (await fetch(v)).ok
)
Returns Array resulting filtered values
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
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
await series([
async () => await fetch('foo'),
async () => await fetch('baz')
])
Returns (Array | Object) same structure as list
input, but with values now resolved.
FAQs
Asynchronous Array Utilities (for await)
The npm package asyncro receives a total of 277,374 weekly downloads. As such, asyncro popularity was classified as popular.
We found that asyncro demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
Security News
Popular npm packages like eslint-config-prettier were compromised after a phishing attack stole a maintainer’s token, spreading malicious updates.
Security News
/Research
A phishing attack targeted developers using a typosquatted npm domain (npnjs.com) to steal credentials via fake login pages - watch out for similar scams.