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

README.md

Async Logo

Github Actions CI status NPM version Coverage Status 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. An 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)
})