[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]internal/2024-10-02 08:35 -  
[DIR]dist/2024-10-02 08:35 -  
[   ]wrapSync.js2024-10-02 08:35 3.7K 
[   ]whilst.js2024-10-02 08:35 2.3K 
[   ]waterfall.js2024-10-02 08:35 3.1K 
[   ]until.js2024-10-02 08:35 2.0K 
[   ]unmemoize.js2024-10-02 08:35 665  
[   ]tryEach.js2024-10-02 08:35 2.5K 
[   ]transform.js2024-10-02 08:35 5.4K 
[   ]timesSeries.js2024-10-02 08:35 1.0K 
[   ]timesLimit.js2024-10-02 08:35 1.4K 
[   ]times.js2024-10-02 08:35 1.5K 
[   ]timeout.js2024-10-02 08:35 2.7K 
[   ]sortBy.js2024-10-02 08:35 6.1K 
[   ]someSeries.js2024-10-02 08:35 1.6K 
[   ]someLimit.js2024-10-02 08:35 1.7K 
[   ]some.js2024-10-02 08:35 3.7K 
[   ]setImmediate.js2024-10-02 08:35 1.4K 
[   ]series.js2024-10-02 08:35 5.7K 
[   ]seq.js2024-10-02 08:35 2.6K 
[   ]selectSeries.js2024-10-02 08:35 1.5K 
[   ]selectLimit.js2024-10-02 08:35 1.6K 
[   ]select.js2024-10-02 08:35 2.8K 
[   ]retryable.js2024-10-02 08:35 2.5K 
[   ]retry.js2024-10-02 08:35 5.4K 
[   ]rejectSeries.js2024-10-02 08:35 1.4K 
[   ]rejectLimit.js2024-10-02 08:35 1.5K 
[   ]reject.js2024-10-02 08:35 2.6K 
[   ]reflectAll.js2024-10-02 08:35 2.4K 
[   ]reflect.js2024-10-02 08:35 2.2K 
[   ]reduceRight.js2024-10-02 08:35 1.5K 
[   ]reduce.js2024-10-02 08:35 4.8K 
[   ]race.js2024-10-02 08:35 2.1K 
[   ]queue.js2024-10-02 08:35 626  
[   ]priorityQueue.js2024-10-02 08:35 1.4K 
[   ]parallelLimit.js2024-10-02 08:35 1.5K 
[   ]parallel.js2024-10-02 08:35 5.4K 
[   ]package.json2024-10-02 08:35 2.2K 
[   ]nextTick.js2024-10-02 08:35 1.4K 
[   ]memoize.js2024-10-02 08:35 3.0K 
[   ]mapValuesSeries.js2024-10-02 08:35 1.3K 
[   ]mapValuesLimit.js2024-10-02 08:35 2.1K 
[   ]mapValues.js2024-10-02 08:35 4.5K 
[   ]mapSeries.js2024-10-02 08:35 1.5K 
[   ]mapLimit.js2024-10-02 08:35 1.6K 
[   ]map.js2024-10-02 08:35 4.5K 
[   ]log.js2024-10-02 08:35 1.2K 
[   ]inject.js2024-10-02 08:35 4.8K 
[   ]index.js2024-10-02 08:35 19K 
[   ]groupBySeries.js2024-10-02 08:35 1.3K 
[   ]groupByLimit.js2024-10-02 08:35 2.4K 
[   ]groupBy.js2024-10-02 08:35 3.5K 
[   ]forever.js2024-10-02 08:35 2.1K 
[   ]forEachSeries.js2024-10-02 08:35 1.5K 
[   ]forEachOfSeries.js2024-10-02 08:35 1.3K 
[   ]forEachOfLimit.js2024-10-02 08:35 1.6K 
[   ]forEachOf.js2024-10-02 08:35 5.6K 
[   ]forEachLimit.js2024-10-02 08:35 1.7K 
[   ]forEach.js2024-10-02 08:35 3.9K 
[   ]foldr.js2024-10-02 08:35 1.5K 
[   ]foldl.js2024-10-02 08:35 4.8K 
[   ]flatMapSeries.js2024-10-02 08:35 1.4K 
[   ]flatMapLimit.js2024-10-02 08:35 2.0K 
[   ]flatMap.js2024-10-02 08:35 3.6K 
[   ]findSeries.js2024-10-02 08:35 1.7K 
[   ]findLimit.js2024-10-02 08:35 1.8K 
[   ]find.js2024-10-02 08:35 3.2K 
[   ]filterSeries.js2024-10-02 08:35 1.5K 
[   ]filterLimit.js2024-10-02 08:35 1.6K 
[   ]filter.js2024-10-02 08:35 2.8K 
[   ]everySeries.js2024-10-02 08:35 1.6K 
[   ]everyLimit.js2024-10-02 08:35 1.7K 
[   ]every.js2024-10-02 08:35 3.5K 
[   ]ensureAsync.js2024-10-02 08:35 2.3K 
[   ]eachSeries.js2024-10-02 08:35 1.5K 
[   ]eachOfSeries.js2024-10-02 08:35 1.3K 
[   ]eachOfLimit.js2024-10-02 08:35 1.6K 
[   ]eachOf.js2024-10-02 08:35 5.6K 
[   ]eachLimit.js2024-10-02 08:35 1.7K 
[   ]each.js2024-10-02 08:35 3.9K 
[   ]during.js2024-10-02 08:35 2.3K 
[   ]doWhilst.js2024-10-02 08:35 2.2K 
[   ]doUntil.js2024-10-02 08:35 1.7K 
[   ]doDuring.js2024-10-02 08:35 2.2K 
[   ]dir.js2024-10-02 08:35 1.3K 
[   ]detectSeries.js2024-10-02 08:35 1.7K 
[   ]detectLimit.js2024-10-02 08:35 1.8K 
[   ]detect.js2024-10-02 08:35 3.2K 
[   ]constant.js2024-10-02 08:35 302  
[   ]concatSeries.js2024-10-02 08:35 1.4K 
[   ]concatLimit.js2024-10-02 08:35 2.0K 
[   ]concat.js2024-10-02 08:35 3.6K 
[   ]compose.js2024-10-02 08:35 1.5K 
[   ]cargoQueue.js2024-10-02 08:35 3.3K 
[   ]cargo.js2024-10-02 08:35 2.7K 
[   ]bower.json2024-10-02 08:35 239  
[   ]autoInject.js2024-10-02 08:35 6.9K 
[   ]auto.js2024-10-02 08:35 12K 
[   ]asyncify.js2024-10-02 08:35 3.7K 
[   ]applyEachSeries.js2024-10-02 08:35 1.3K 
[   ]applyEach.js2024-10-02 08:35 1.9K 
[   ]apply.js2024-10-02 08:35 217  
[   ]anySeries.js2024-10-02 08:35 1.6K 
[   ]anyLimit.js2024-10-02 08:35 1.7K 
[   ]any.js2024-10-02 08:35 3.7K 
[   ]allSeries.js2024-10-02 08:35 1.6K 
[   ]allLimit.js2024-10-02 08:35 1.7K 
[   ]all.js2024-10-02 08:35 3.5K 
[TXT]README.md2024-10-02 08:35 3.1K 
[   ]LICENSE2024-10-02 08:35 1.0K 
[TXT]CHANGELOG.md2024-10-02 08:35 33K 
![Async Logo](https://raw.githubusercontent.com/caolan/async/master/logo/async-logo_readme.jpg)

![Github Actions CI status](https://github.com/caolan/async/actions/workflows/ci.yml/badge.svg)
[![NPM version](https://img.shields.io/npm/v/async.svg)](https://www.npmjs.com/package/async)
[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master)
[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/async/badge?style=rounded)](https://www.jsdelivr.com/package/npm/async)

<!--
|Linux|Windows|MacOS|
|-|-|-|
|[![Linux Build Status](https://dev.azure.com/caolanmcmahon/async/_apis/build/status/caolan.async?branchName=master&jobName=Linux&configuration=Linux%20node_10_x)](https://dev.azure.com/caolanmcmahon/async/_build/latest?definitionId=1&branchName=master) | [![Windows Build Status](https://dev.azure.com/caolanmcmahon/async/_apis/build/status/caolan.async?branchName=master&jobName=Windows&configuration=Windows%20node_10_x)](https://dev.azure.com/caolanmcmahon/async/_build/latest?definitionId=1&branchName=master) | [![MacOS Build Status](https://dev.azure.com/caolanmcmahon/async/_apis/build/status/caolan.async?branchName=master&jobName=OSX&configuration=OSX%20node_10_x)](https://dev.azure.com/caolanmcmahon/async/_build/latest?definitionId=1&branchName=master)| -->

Async is a utility module which provides straight-forward, powerful functions for working with [asynchronous JavaScript](http://caolan.github.io/async/v3/global.html). Although originally designed for use with [Node.js](https://nodejs.org/) 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`](https://www.npmjs.com/package/async-es).

For Documentation, visit <https://caolan.github.io/async/>

*For Async v1.5.x documentation, go [HERE](https://github.com/caolan/async/blob/v1.5.2/README.md)*


```javascript
// 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);
});
```

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