[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]dist/2023-06-15 18:19 -  
[DIR]internal/2023-06-15 18:19 -  
[TXT]CHANGELOG.md1985-10-26 08:15 33K 
[   ]LICENSE1985-10-26 08:15 1.0K 
[TXT]README.md1985-10-26 08:15 3.1Kd7c1522 post receive test [كارل مبارك]
[   ]all.js1985-10-26 08:15 3.5K 
[   ]allLimit.js1985-10-26 08:15 1.7K 
[   ]allSeries.js1985-10-26 08:15 1.6K 
[   ]any.js1985-10-26 08:15 3.7K 
[   ]anyLimit.js1985-10-26 08:15 1.7K 
[   ]anySeries.js1985-10-26 08:15 1.6K 
[   ]apply.js1985-10-26 08:15 3.0K 
[   ]applyEach.js1985-10-26 08:15 1.9K 
[   ]applyEachSeries.js1985-10-26 08:15 1.3K 
[   ]asyncify.js1985-10-26 08:15 3.7K 
[   ]auto.js1985-10-26 08:15 12K 
[   ]autoInject.js1985-10-26 08:15 6.9K 
[   ]bower.json1985-10-26 08:15 239  
[   ]cargo.js1985-10-26 08:15 2.7K 
[   ]cargoQueue.js1985-10-26 08:15 3.3K 
[   ]compose.js1985-10-26 08:15 1.5K 
[   ]concat.js1985-10-26 08:15 3.6K 
[   ]concatLimit.js1985-10-26 08:15 2.0K 
[   ]concatSeries.js1985-10-26 08:15 1.4K 
[   ]constant.js1985-10-26 08:15 2.9K 
[   ]detect.js1985-10-26 08:15 3.2K 
[   ]detectLimit.js1985-10-26 08:15 1.8K 
[   ]detectSeries.js1985-10-26 08:15 1.7K 
[   ]dir.js1985-10-26 08:15 1.3K 
[   ]doDuring.js1985-10-26 08:15 2.2K 
[   ]doUntil.js1985-10-26 08:15 1.7K 
[   ]doWhilst.js1985-10-26 08:15 2.2K 
[   ]during.js1985-10-26 08:15 2.3K 
[   ]each.js1985-10-26 08:15 3.9K 
[   ]eachLimit.js1985-10-26 08:15 1.7K 
[   ]eachOf.js1985-10-26 08:15 5.6K 
[   ]eachOfLimit.js1985-10-26 08:15 1.6K 
[   ]eachOfSeries.js1985-10-26 08:15 1.3K 
[   ]eachSeries.js1985-10-26 08:15 1.5K 
[   ]ensureAsync.js1985-10-26 08:15 2.3K 
[   ]every.js1985-10-26 08:15 3.5K 
[   ]everyLimit.js1985-10-26 08:15 1.7K 
[   ]everySeries.js1985-10-26 08:15 1.6K 
[   ]filter.js1985-10-26 08:15 2.8K 
[   ]filterLimit.js1985-10-26 08:15 1.6K 
[   ]filterSeries.js1985-10-26 08:15 1.5K 
[   ]find.js1985-10-26 08:15 3.2K 
[   ]findLimit.js1985-10-26 08:15 1.8K 
[   ]findSeries.js1985-10-26 08:15 1.7K 
[   ]flatMap.js1985-10-26 08:15 3.6K 
[   ]flatMapLimit.js1985-10-26 08:15 2.0K 
[   ]flatMapSeries.js1985-10-26 08:15 1.4K 
[   ]foldl.js1985-10-26 08:15 4.8K 
[   ]foldr.js1985-10-26 08:15 1.5K 
[   ]forEach.js1985-10-26 08:15 3.9K 
[   ]forEachLimit.js1985-10-26 08:15 1.7K 
[   ]forEachOf.js1985-10-26 08:15 5.6K 
[   ]forEachOfLimit.js1985-10-26 08:15 1.6K 
[   ]forEachOfSeries.js1985-10-26 08:15 1.3K 
[   ]forEachSeries.js1985-10-26 08:15 1.5K 
[   ]forever.js1985-10-26 08:15 2.1K 
[   ]groupBy.js1985-10-26 08:15 3.5K 
[   ]groupByLimit.js1985-10-26 08:15 2.4K 
[   ]groupBySeries.js1985-10-26 08:15 1.3K 
[   ]index.js1985-10-26 08:15 19K 
[   ]inject.js1985-10-26 08:15 4.8K 
[   ]log.js1985-10-26 08:15 1.2K 
[   ]map.js1985-10-26 08:15 4.5K 
[   ]mapLimit.js1985-10-26 08:15 1.6K 
[   ]mapSeries.js1985-10-26 08:15 1.5K 
[   ]mapValues.js1985-10-26 08:15 4.5K 
[   ]mapValuesLimit.js1985-10-26 08:15 2.1K 
[   ]mapValuesSeries.js1985-10-26 08:15 1.3K 
[   ]memoize.js1985-10-26 08:15 3.0K 
[   ]nextTick.js1985-10-26 08:15 1.4K 
[   ]package.json2023-06-15 18:21 2.9K 
[   ]parallel.js1985-10-26 08:15 5.4K 
[   ]parallelLimit.js1985-10-26 08:15 1.5K 
[   ]priorityQueue.js1985-10-26 08:15 2.6K 
[   ]queue.js1985-10-26 08:15 7.2K 
[   ]race.js1985-10-26 08:15 2.1K 
[   ]reduce.js1985-10-26 08:15 4.8K 
[   ]reduceRight.js1985-10-26 08:15 1.5K 
[   ]reflect.js1985-10-26 08:15 2.2K 
[   ]reflectAll.js1985-10-26 08:15 2.4K 
[   ]reject.js1985-10-26 08:15 2.6K 
[   ]rejectLimit.js1985-10-26 08:15 1.5K 
[   ]rejectSeries.js1985-10-26 08:15 1.4K 
[   ]retry.js1985-10-26 08:15 5.4K 
[   ]retryable.js1985-10-26 08:15 2.5K 
[   ]select.js1985-10-26 08:15 2.8K 
[   ]selectLimit.js1985-10-26 08:15 1.6K 
[   ]selectSeries.js1985-10-26 08:15 1.5K 
[   ]seq.js1985-10-26 08:15 2.6K 
[   ]series.js1985-10-26 08:15 5.7K 
[   ]setImmediate.js1985-10-26 08:15 1.4K 
[   ]some.js1985-10-26 08:15 3.7K 
[   ]someLimit.js1985-10-26 08:15 1.7K 
[   ]someSeries.js1985-10-26 08:15 1.6K 
[   ]sortBy.js1985-10-26 08:15 6.1K 
[   ]timeout.js1985-10-26 08:15 2.7K 
[   ]times.js1985-10-26 08:15 1.5K 
[   ]timesLimit.js1985-10-26 08:15 1.4K 
[   ]timesSeries.js1985-10-26 08:15 1.0K 
[   ]transform.js1985-10-26 08:15 5.4K 
[   ]tryEach.js1985-10-26 08:15 2.5K 
[   ]unmemoize.js1985-10-26 08:15 668  
[   ]until.js1985-10-26 08:15 2.0K 
[   ]waterfall.js1985-10-26 08:15 3.1K 
[   ]whilst.js1985-10-26 08:15 2.3K 
[   ]wrapSync.js1985-10-26 08:15 3.7K 
![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)
})
```