Fork channel

Create a new channel as a copy of main.

Rename channel

Rename main to:

Delete channel

Delete main? This cannot be undone.

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

Async Logo

Build Status via Travis CI NPM version Coverage Status Join the chat at https://gitter.im/caolan/async libhive - Open source examples 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 install --save async, it can also be used directly in the browser.

This version of the package is optimized for the Node.js environment. If you use Async with webpack, install async-es instead.

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)
})