Need help with async?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

caolan
26.8K Stars 2.4K Forks MIT License 1.8K Commits 5 Opened issues

Description

Async utilities for node and the browser

Services available

!
?

Need anything else?

Contributors list

Async Logo

Build Status via Travis CI Build Status via Azure Pipelines NPM version Coverage Status Join the chat at https://gitter.im/caolan/async jsDelivr Hits

Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js and installable via

npm i async
, it can also be used directly in the browser. A ESM/MJS version is included in the main
async
package that should automatically be used with compatible bundlers such as Webpack and Rollup.

A pure ESM version of Async is available as

async-es
.

For Documentation, visit https://caolan.github.io/async/

For Async v1.5.x documentation, go HERE

// for use with Node-style callbacks...
var async = require("async");

var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; var configs = {};

async.forEachOf(obj, (value, key, callback) => { fs.readFile(__dirname + value, "utf8", (err, data) => { if (err) return callback(err); try { configs[key] = JSON.parse(data); } catch (e) { return callback(e); } callback(); }); }, err => { if (err) console.error(err.message); // configs is now a map of JSON data doSomethingWith(configs); });

var async = require("async");

// ...or ES2017 async functions async.mapLimit(urls, 5, async function(url) { const response = await fetch(url) return response.body }, (err, results) => { if (err) throw err // results is now an array of the response bodies console.log(results) })

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.