Aravind142857 a8b8883b11 Node JS version
..
dist Node JS version
internal Node JS version
CHANGELOG.md Node JS version
LICENSE Node JS version
README.md Node JS version
all.js Node JS version
allLimit.js Node JS version
allSeries.js Node JS version
any.js Node JS version
anyLimit.js Node JS version
anySeries.js Node JS version
apply.js Node JS version
applyEach.js Node JS version
applyEachSeries.js Node JS version
asyncify.js Node JS version
auto.js Node JS version
autoInject.js Node JS version
bower.json Node JS version
cargo.js Node JS version
cargoQueue.js Node JS version
compose.js Node JS version
concat.js Node JS version
concatLimit.js Node JS version
concatSeries.js Node JS version
constant.js Node JS version
detect.js Node JS version
detectLimit.js Node JS version
detectSeries.js Node JS version
dir.js Node JS version
doDuring.js Node JS version
doUntil.js Node JS version
doWhilst.js Node JS version
during.js Node JS version
each.js Node JS version
eachLimit.js Node JS version
eachOf.js Node JS version
eachOfLimit.js Node JS version
eachOfSeries.js Node JS version
eachSeries.js Node JS version
ensureAsync.js Node JS version
every.js Node JS version
everyLimit.js Node JS version
everySeries.js Node JS version
filter.js Node JS version
filterLimit.js Node JS version
filterSeries.js Node JS version
find.js Node JS version
findLimit.js Node JS version
findSeries.js Node JS version
flatMap.js Node JS version
flatMapLimit.js Node JS version
flatMapSeries.js Node JS version
foldl.js Node JS version
foldr.js Node JS version
forEach.js Node JS version
forEachLimit.js Node JS version
forEachOf.js Node JS version
forEachOfLimit.js Node JS version
forEachOfSeries.js Node JS version
forEachSeries.js Node JS version
forever.js Node JS version
groupBy.js Node JS version
groupByLimit.js Node JS version
groupBySeries.js Node JS version
index.js Node JS version
inject.js Node JS version
log.js Node JS version
map.js Node JS version
mapLimit.js Node JS version
mapSeries.js Node JS version
mapValues.js Node JS version
mapValuesLimit.js Node JS version
mapValuesSeries.js Node JS version
memoize.js Node JS version
nextTick.js Node JS version
package.json Node JS version
parallel.js Node JS version
parallelLimit.js Node JS version
priorityQueue.js Node JS version
queue.js Node JS version
race.js Node JS version
reduce.js Node JS version
reduceRight.js Node JS version
reflect.js Node JS version
reflectAll.js Node JS version
reject.js Node JS version
rejectLimit.js Node JS version
rejectSeries.js Node JS version
retry.js Node JS version
retryable.js Node JS version
select.js Node JS version
selectLimit.js Node JS version
selectSeries.js Node JS version
seq.js Node JS version
series.js Node JS version
setImmediate.js Node JS version
some.js Node JS version
someLimit.js Node JS version
someSeries.js Node JS version
sortBy.js Node JS version
timeout.js Node JS version
times.js Node JS version
timesLimit.js Node JS version
timesSeries.js Node JS version
transform.js Node JS version
tryEach.js Node JS version
unmemoize.js Node JS version
until.js Node JS version
waterfall.js Node JS version
whilst.js Node JS version
wrapSync.js Node JS version

README.md

Async Logo

Github Actions CI status 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)
})