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


[](https://www.npmjs.com/package/async)
[](https://coveralls.io/r/caolan/async?branch=master)
[](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://www.jsdelivr.com/package/npm/async)
<!--
|Linux|Windows|MacOS|
|-|-|-|
|[](https://dev.azure.com/caolanmcmahon/async/_build/latest?definitionId=1&branchName=master) | [](https://dev.azure.com/caolanmcmahon/async/_build/latest?definitionId=1&branchName=master) | [](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)
})
```