Github url


by caolan

caolan /async

Async utilities for node and the browser

26.6K Stars 2.4K Forks Last release: over 3 years ago (v2.3.0) MIT License 1.8K Commits 81 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Async Logo

Build Status via Travis CIBuild Status via Azure PipelinesNPM versionCoverage StatusJoin the chat at 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


package that should automatically be used with compatible bundlers such as Webpack and Rollup.

A pure ESM version of Async is available as [



For Documentation, visit

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.