You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					274 lines
				
				12 KiB
			
		
		
			
		
	
	
					274 lines
				
				12 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								<h1 align="center">Neo-Async</h1>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p align="center">
							 | 
						||
| 
								 | 
							
								  <img src="https://raw.githubusercontent.com/wiki/suguru03/neo-async/images/neo_async_v2.png" width="250px" />
							 | 
						||
| 
								 | 
							
								</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p align="center">
							 | 
						||
| 
								 | 
							
								  <a href="https://www.npmjs.com/package/neo-async"><img alt="npm" src="https://img.shields.io/npm/v/neo-async.svg"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://travis-ci.org/suguru03/neo-async"><img alt="Travis Status" src="https://img.shields.io/travis/suguru03/neo-async.svg"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://codecov.io/gh/suguru03/neo-async"><img alt="Coverage Status" src="https://img.shields.io/codecov/c/github/suguru03/neo-async/master.svg"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://www.npmjs.com/package/neo-async"><img alt="download" src="https://img.shields.io/npm/dm/neo-async.svg"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://lgtm.com/projects/g/suguru03/neo-async/context:javascript"><img src="https://img.shields.io/lgtm/grade/javascript/g/suguru03/neo-async.svg?logo=lgtm&logoWidth=18" alt="Code Quality: Javascript" height="18"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://lgtm.com/projects/g/suguru03/neo-async/alerts"><img src="https://img.shields.io/lgtm/alerts/g/suguru03/neo-async.svg?logo=lgtm&logoWidth=18" alt="Total Alerts" height="18"></a>
							 | 
						||
| 
								 | 
							
								  <a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fsuguru03%2Fneo-async?ref=badge_shield"><img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsuguru03%2Fneo-async.svg?type=shield" alt="FOSSA" height="18"></a>
							 | 
						||
| 
								 | 
							
								</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Neo-Async is thought to be used as a drop-in replacement for [Async](https://github.com/caolan/async), it almost fully covers its functionality and runs [faster](#benchmark).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Benchmark is [here](#benchmark)!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Bluebird's benchmark is [here](https://github.com/suguru03/bluebird/tree/aigle/benchmark)!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Code Coverage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Installation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### In a browser
							 | 
						||
| 
								 | 
							
								```html
							 | 
						||
| 
								 | 
							
								<script src="async.min.js"></script>
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### In an AMD loader
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								require(['async'], function(async) {});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Promise and async/await
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								I recommend to use [`Aigle`](https://github.com/suguru03/aigle).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It is optimized for Promise handling and has almost the same functionality as `neo-async`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Node.js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### standard
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install neo-async
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var async = require('neo-async');
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### replacement
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ npm install neo-async
							 | 
						||
| 
								 | 
							
								$ ln -s ./node_modules/neo-async ./node_modules/async
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var async = require('async');
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Bower
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								bower install neo-async
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Feature
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[JSDoc](http://suguru03.github.io/neo-async/doc/async.html)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								\* not in Async
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Collections
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- [`each`](http://suguru03.github.io/neo-async/doc/async.each.html)
							 | 
						||
| 
								 | 
							
								- [`eachSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html)
							 | 
						||
| 
								 | 
							
								- [`eachLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html)
							 | 
						||
| 
								 | 
							
								- [`forEach`](http://suguru03.github.io/neo-async/doc/async.each.html) -> [`each`](http://suguru03.github.io/neo-async/doc/async.each.html)
							 | 
						||
| 
								 | 
							
								- [`forEachSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html) -> [`eachSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html)
							 | 
						||
| 
								 | 
							
								- [`forEachLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html) -> [`eachLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html)
							 | 
						||
| 
								 | 
							
								- [`eachOf`](http://suguru03.github.io/neo-async/doc/async.each.html) -> [`each`](http://suguru03.github.io/neo-async/doc/async.each.html)
							 | 
						||
| 
								 | 
							
								- [`eachOfSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html) -> [`eachSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html)
							 | 
						||
| 
								 | 
							
								- [`eachOfLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html) -> [`eachLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html)
							 | 
						||
| 
								 | 
							
								- [`forEachOf`](http://suguru03.github.io/neo-async/doc/async.each.html) -> [`each`](http://suguru03.github.io/neo-async/doc/async.each.html)
							 | 
						||
| 
								 | 
							
								- [`forEachOfSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html) -> [`eachSeries`](http://suguru03.github.io/neo-async/doc/async.eachSeries.html)
							 | 
						||
| 
								 | 
							
								- [`eachOfLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html) -> [`forEachLimit`](http://suguru03.github.io/neo-async/doc/async.eachLimit.html)
							 | 
						||
| 
								 | 
							
								- [`map`](http://suguru03.github.io/neo-async/doc/async.map.html)
							 | 
						||
| 
								 | 
							
								- [`mapSeries`](http://suguru03.github.io/neo-async/doc/async.mapSeries.html)
							 | 
						||
| 
								 | 
							
								- [`mapLimit`](http://suguru03.github.io/neo-async/doc/async.mapLimit.html)
							 | 
						||
| 
								 | 
							
								- [`mapValues`](http://suguru03.github.io/neo-async/doc/async.mapValues.html)
							 | 
						||
| 
								 | 
							
								- [`mapValuesSeries`](http://suguru03.github.io/neo-async/doc/async.mapValuesSeries.html)
							 | 
						||
| 
								 | 
							
								- [`mapValuesLimit`](http://suguru03.github.io/neo-async/doc/async.mapValuesLimit.html)
							 | 
						||
| 
								 | 
							
								- [`filter`](http://suguru03.github.io/neo-async/doc/async.filter.html)
							 | 
						||
| 
								 | 
							
								- [`filterSeries`](http://suguru03.github.io/neo-async/doc/async.filterSeries.html)
							 | 
						||
| 
								 | 
							
								- [`filterLimit`](http://suguru03.github.io/neo-async/doc/async.filterLimit.html)
							 | 
						||
| 
								 | 
							
								- [`select`](http://suguru03.github.io/neo-async/doc/async.filter.html) -> [`filter`](http://suguru03.github.io/neo-async/doc/async.filter.html)
							 | 
						||
| 
								 | 
							
								- [`selectSeries`](http://suguru03.github.io/neo-async/doc/async.filterSeries.html) -> [`filterSeries`](http://suguru03.github.io/neo-async/doc/async.filterSeries.html)
							 | 
						||
| 
								 | 
							
								- [`selectLimit`](http://suguru03.github.io/neo-async/doc/async.filterLimit.html) -> [`filterLimit`](http://suguru03.github.io/neo-async/doc/async.filterLimit.html)
							 | 
						||
| 
								 | 
							
								- [`reject`](http://suguru03.github.io/neo-async/doc/async.reject.html)
							 | 
						||
| 
								 | 
							
								- [`rejectSeries`](http://suguru03.github.io/neo-async/doc/async.rejectSeries.html)
							 | 
						||
| 
								 | 
							
								- [`rejectLimit`](http://suguru03.github.io/neo-async/doc/async.rejectLimit.html)
							 | 
						||
| 
								 | 
							
								- [`detect`](http://suguru03.github.io/neo-async/doc/async.detect.html)
							 | 
						||
| 
								 | 
							
								- [`detectSeries`](http://suguru03.github.io/neo-async/doc/async.detectSeries.html)
							 | 
						||
| 
								 | 
							
								- [`detectLimit`](http://suguru03.github.io/neo-async/doc/async.detectLimit.html)
							 | 
						||
| 
								 | 
							
								- [`find`](http://suguru03.github.io/neo-async/doc/async.detect.html) -> [`detect`](http://suguru03.github.io/neo-async/doc/async.detect.html)
							 | 
						||
| 
								 | 
							
								- [`findSeries`](http://suguru03.github.io/neo-async/doc/async.detectSeries.html) -> [`detectSeries`](http://suguru03.github.io/neo-async/doc/async.detectSeries.html)
							 | 
						||
| 
								 | 
							
								- [`findLimit`](http://suguru03.github.io/neo-async/doc/async.detectLimit.html) -> [`detectLimit`](http://suguru03.github.io/neo-async/doc/async.detectLimit.html)
							 | 
						||
| 
								 | 
							
								- [`pick`](http://suguru03.github.io/neo-async/doc/async.pick.html) *
							 | 
						||
| 
								 | 
							
								- [`pickSeries`](http://suguru03.github.io/neo-async/doc/async.pickSeries.html) *
							 | 
						||
| 
								 | 
							
								- [`pickLimit`](http://suguru03.github.io/neo-async/doc/async.pickLimit.html) *
							 | 
						||
| 
								 | 
							
								- [`omit`](http://suguru03.github.io/neo-async/doc/async.omit.html) *
							 | 
						||
| 
								 | 
							
								- [`omitSeries`](http://suguru03.github.io/neo-async/doc/async.omitSeries.html) *
							 | 
						||
| 
								 | 
							
								- [`omitLimit`](http://suguru03.github.io/neo-async/doc/async.omitLimit.html) *
							 | 
						||
| 
								 | 
							
								- [`reduce`](http://suguru03.github.io/neo-async/doc/async.reduce.html)
							 | 
						||
| 
								 | 
							
								- [`inject`](http://suguru03.github.io/neo-async/doc/async.reduce.html) -> [`reduce`](http://suguru03.github.io/neo-async/doc/async.reduce.html)
							 | 
						||
| 
								 | 
							
								- [`foldl`](http://suguru03.github.io/neo-async/doc/async.reduce.html) -> [`reduce`](http://suguru03.github.io/neo-async/doc/async.reduce.html)
							 | 
						||
| 
								 | 
							
								- [`reduceRight`](http://suguru03.github.io/neo-async/doc/async.reduceRight.html)
							 | 
						||
| 
								 | 
							
								- [`foldr`](http://suguru03.github.io/neo-async/doc/async.reduceRight.html) -> [`reduceRight`](http://suguru03.github.io/neo-async/doc/async.reduceRight.html)
							 | 
						||
| 
								 | 
							
								- [`transform`](http://suguru03.github.io/neo-async/doc/async.transform.html)
							 | 
						||
| 
								 | 
							
								- [`transformSeries`](http://suguru03.github.io/neo-async/doc/async.transformSeries.html) *
							 | 
						||
| 
								 | 
							
								- [`transformLimit`](http://suguru03.github.io/neo-async/doc/async.transformLimit.html) *
							 | 
						||
| 
								 | 
							
								- [`sortBy`](http://suguru03.github.io/neo-async/doc/async.sortBy.html)
							 | 
						||
| 
								 | 
							
								- [`sortBySeries`](http://suguru03.github.io/neo-async/doc/async.sortBySeries.html) *
							 | 
						||
| 
								 | 
							
								- [`sortByLimit`](http://suguru03.github.io/neo-async/doc/async.sortByLimit.html) *
							 | 
						||
| 
								 | 
							
								- [`some`](http://suguru03.github.io/neo-async/doc/async.some.html)
							 | 
						||
| 
								 | 
							
								- [`someSeries`](http://suguru03.github.io/neo-async/doc/async.someSeries.html)
							 | 
						||
| 
								 | 
							
								- [`someLimit`](http://suguru03.github.io/neo-async/doc/async.someLimit.html)
							 | 
						||
| 
								 | 
							
								- [`any`](http://suguru03.github.io/neo-async/doc/async.some.html) -> [`some`](http://suguru03.github.io/neo-async/doc/async.some.html)
							 | 
						||
| 
								 | 
							
								- [`anySeries`](http://suguru03.github.io/neo-async/doc/async.someSeries.html) -> [`someSeries`](http://suguru03.github.io/neo-async/doc/async.someSeries.html)
							 | 
						||
| 
								 | 
							
								- [`anyLimit`](http://suguru03.github.io/neo-async/doc/async.someLimit.html) -> [`someLimit`](http://suguru03.github.io/neo-async/doc/async.someLimit.html)
							 | 
						||
| 
								 | 
							
								- [`every`](http://suguru03.github.io/neo-async/doc/async.every.html)
							 | 
						||
| 
								 | 
							
								- [`everySeries`](http://suguru03.github.io/neo-async/doc/async.everySeries.html)
							 | 
						||
| 
								 | 
							
								- [`everyLimit`](http://suguru03.github.io/neo-async/doc/async.everyLimit.html)
							 | 
						||
| 
								 | 
							
								- [`all`](http://suguru03.github.io/neo-async/doc/async.every.html) -> [`every`](http://suguru03.github.io/neo-async/doc/async.every.html)
							 | 
						||
| 
								 | 
							
								- [`allSeries`](http://suguru03.github.io/neo-async/doc/async.everySeries.html) -> [`every`](http://suguru03.github.io/neo-async/doc/async.everySeries.html)
							 | 
						||
| 
								 | 
							
								- [`allLimit`](http://suguru03.github.io/neo-async/doc/async.everyLimit.html) -> [`every`](http://suguru03.github.io/neo-async/doc/async.everyLimit.html)
							 | 
						||
| 
								 | 
							
								- [`concat`](http://suguru03.github.io/neo-async/doc/async.concat.html)
							 | 
						||
| 
								 | 
							
								- [`concatSeries`](http://suguru03.github.io/neo-async/doc/async.concatSeries.html)
							 | 
						||
| 
								 | 
							
								- [`concatLimit`](http://suguru03.github.io/neo-async/doc/async.concatLimit.html) *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Control Flow
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- [`parallel`](http://suguru03.github.io/neo-async/doc/async.parallel.html)
							 | 
						||
| 
								 | 
							
								- [`series`](http://suguru03.github.io/neo-async/doc/async.series.html)
							 | 
						||
| 
								 | 
							
								- [`parallelLimit`](http://suguru03.github.io/neo-async/doc/async.series.html)
							 | 
						||
| 
								 | 
							
								- [`tryEach`](http://suguru03.github.io/neo-async/doc/async.tryEach.html)
							 | 
						||
| 
								 | 
							
								- [`waterfall`](http://suguru03.github.io/neo-async/doc/async.waterfall.html)
							 | 
						||
| 
								 | 
							
								- [`angelFall`](http://suguru03.github.io/neo-async/doc/async.angelFall.html) *
							 | 
						||
| 
								 | 
							
								- [`angelfall`](http://suguru03.github.io/neo-async/doc/async.angelFall.html) -> [`angelFall`](http://suguru03.github.io/neo-async/doc/async.angelFall.html) *
							 | 
						||
| 
								 | 
							
								- [`whilst`](#whilst)
							 | 
						||
| 
								 | 
							
								- [`doWhilst`](#doWhilst)
							 | 
						||
| 
								 | 
							
								- [`until`](#until)
							 | 
						||
| 
								 | 
							
								- [`doUntil`](#doUntil)
							 | 
						||
| 
								 | 
							
								- [`during`](#during)
							 | 
						||
| 
								 | 
							
								- [`doDuring`](#doDuring)
							 | 
						||
| 
								 | 
							
								- [`forever`](#forever)
							 | 
						||
| 
								 | 
							
								- [`compose`](#compose)
							 | 
						||
| 
								 | 
							
								- [`seq`](#seq)
							 | 
						||
| 
								 | 
							
								- [`applyEach`](#applyEach)
							 | 
						||
| 
								 | 
							
								- [`applyEachSeries`](#applyEachSeries)
							 | 
						||
| 
								 | 
							
								- [`queue`](#queue)
							 | 
						||
| 
								 | 
							
								- [`priorityQueue`](#priorityQueue)
							 | 
						||
| 
								 | 
							
								- [`cargo`](#cargo)
							 | 
						||
| 
								 | 
							
								- [`auto`](#auto)
							 | 
						||
| 
								 | 
							
								- [`autoInject`](#autoInject)
							 | 
						||
| 
								 | 
							
								- [`retry`](#retry)
							 | 
						||
| 
								 | 
							
								- [`retryable`](#retryable)
							 | 
						||
| 
								 | 
							
								- [`iterator`](#iterator)
							 | 
						||
| 
								 | 
							
								- [`times`](http://suguru03.github.io/neo-async/doc/async.times.html)
							 | 
						||
| 
								 | 
							
								- [`timesSeries`](http://suguru03.github.io/neo-async/doc/async.timesSeries.html)
							 | 
						||
| 
								 | 
							
								- [`timesLimit`](http://suguru03.github.io/neo-async/doc/async.timesLimit.html)
							 | 
						||
| 
								 | 
							
								- [`race`](#race)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Utils
							 | 
						||
| 
								 | 
							
								- [`apply`](#apply)
							 | 
						||
| 
								 | 
							
								- [`setImmediate`](#setImmediate)
							 | 
						||
| 
								 | 
							
								- [`nextTick`](#nextTick)
							 | 
						||
| 
								 | 
							
								- [`memoize`](#memoize)
							 | 
						||
| 
								 | 
							
								- [`unmemoize`](#unmemoize)
							 | 
						||
| 
								 | 
							
								- [`ensureAsync`](#ensureAsync)
							 | 
						||
| 
								 | 
							
								- [`constant`](#constant)
							 | 
						||
| 
								 | 
							
								- [`asyncify`](#asyncify)
							 | 
						||
| 
								 | 
							
								- [`wrapSync`](#asyncify) -> [`asyncify`](#asyncify)
							 | 
						||
| 
								 | 
							
								- [`log`](#log)
							 | 
						||
| 
								 | 
							
								- [`dir`](#dir)
							 | 
						||
| 
								 | 
							
								- [`timeout`](http://suguru03.github.io/neo-async/doc/async.timeout.html)
							 | 
						||
| 
								 | 
							
								- [`reflect`](#reflect)
							 | 
						||
| 
								 | 
							
								- [`reflectAll`](#reflectAll)
							 | 
						||
| 
								 | 
							
								- [`createLogger`](#createLogger)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Mode
							 | 
						||
| 
								 | 
							
								- [`safe`](#safe) *
							 | 
						||
| 
								 | 
							
								- [`fast`](#fast) *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Benchmark
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Benchmark: Async vs Neo-Async](http://suguru03.hatenablog.com/entry/2016/06/10/135559)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### How to check
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								$ node perf
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Environment
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Darwin 17.3.0 x64
							 | 
						||
| 
								 | 
							
								* Node.js v8.9.4
							 | 
						||
| 
								 | 
							
								* async v2.6.0
							 | 
						||
| 
								 | 
							
								* neo-async v2.5.0
							 | 
						||
| 
								 | 
							
								* benchmark v2.1.4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Result
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The value is the ratio (Neo-Async/Async) of the average speed.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Collections
							 | 
						||
| 
								 | 
							
								|function|benchmark|
							 | 
						||
| 
								 | 
							
								|---|--:|
							 | 
						||
| 
								 | 
							
								|each/forEach|2.43|
							 | 
						||
| 
								 | 
							
								|eachSeries/forEachSeries|1.75|
							 | 
						||
| 
								 | 
							
								|eachLimit/forEachLimit|1.68|
							 | 
						||
| 
								 | 
							
								|eachOf|3.29|
							 | 
						||
| 
								 | 
							
								|eachOfSeries|1.50|
							 | 
						||
| 
								 | 
							
								|eachOfLimit|1.59|
							 | 
						||
| 
								 | 
							
								|map|3.95|
							 | 
						||
| 
								 | 
							
								|mapSeries|1.81|
							 | 
						||
| 
								 | 
							
								|mapLimit|1.27|
							 | 
						||
| 
								 | 
							
								|mapValues|2.73|
							 | 
						||
| 
								 | 
							
								|mapValuesSeries|1.59|
							 | 
						||
| 
								 | 
							
								|mapValuesLimit|1.23|
							 | 
						||
| 
								 | 
							
								|filter|3.00|
							 | 
						||
| 
								 | 
							
								|filterSeries|1.74|
							 | 
						||
| 
								 | 
							
								|filterLimit|1.17|
							 | 
						||
| 
								 | 
							
								|reject|4.59|
							 | 
						||
| 
								 | 
							
								|rejectSeries|2.31|
							 | 
						||
| 
								 | 
							
								|rejectLimit|1.58|
							 | 
						||
| 
								 | 
							
								|detect|4.30|
							 | 
						||
| 
								 | 
							
								|detectSeries|1.86|
							 | 
						||
| 
								 | 
							
								|detectLimit|1.32|
							 | 
						||
| 
								 | 
							
								|reduce|1.82|
							 | 
						||
| 
								 | 
							
								|transform|2.46|
							 | 
						||
| 
								 | 
							
								|sortBy|4.08|
							 | 
						||
| 
								 | 
							
								|some|2.19|
							 | 
						||
| 
								 | 
							
								|someSeries|1.83|
							 | 
						||
| 
								 | 
							
								|someLimit|1.32|
							 | 
						||
| 
								 | 
							
								|every|2.09|
							 | 
						||
| 
								 | 
							
								|everySeries|1.84|
							 | 
						||
| 
								 | 
							
								|everyLimit|1.35|
							 | 
						||
| 
								 | 
							
								|concat|3.79|
							 | 
						||
| 
								 | 
							
								|concatSeries|4.45|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Control Flow
							 | 
						||
| 
								 | 
							
								|funciton|benchmark|
							 | 
						||
| 
								 | 
							
								|---|--:|
							 | 
						||
| 
								 | 
							
								|parallel|2.93|
							 | 
						||
| 
								 | 
							
								|series|1.96|
							 | 
						||
| 
								 | 
							
								|waterfall|1.29|
							 | 
						||
| 
								 | 
							
								|whilst|1.00|
							 | 
						||
| 
								 | 
							
								|doWhilst|1.12|
							 | 
						||
| 
								 | 
							
								|until|1.12|
							 | 
						||
| 
								 | 
							
								|doUntil|1.12|
							 | 
						||
| 
								 | 
							
								|during|1.18|
							 | 
						||
| 
								 | 
							
								|doDuring|2.42|
							 | 
						||
| 
								 | 
							
								|times|4.25|
							 | 
						||
| 
								 | 
							
								|auto|1.97|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								[](https://app.fossa.io/projects/git%2Bgithub.com%2Fsuguru03%2Fneo-async?ref=badge_large)
							 |