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