Package Exports
- neo-async
- neo-async/apply
- neo-async/eachSeries
- neo-async/mapSeries
- neo-async/queue
- neo-async/waterfall
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (neo-async) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Neo-Async
Neo-Async is thought to be used as a drop-in replacement for Async, it almost fully covers its functionality and runs faster.
Benchmark is here!
Bluebird's benchmark is here!
Code Coverage

Installation
In a browser
<script src="async.min.js"></script>In an AMD loader
require(['async'], function(async) {});Promise and async/await
I recommend to use Aigle.
It is optimized for Promise handling and has almost the same functionality as neo-async.
Node.js
standard
$ npm install neo-asyncvar async = require('neo-async');replacement
$ npm install neo-async
$ ln -s ./node_modules/neo-async ./node_modules/asyncvar async = require('async');Bower
bower install neo-asyncFeature
* not in Async
Collections
eacheachSerieseachLimitforEach->eachforEachSeries->eachSeriesforEachLimit->eachLimiteachOf->eacheachOfSeries->eachSerieseachOfLimit->eachLimitforEachOf->eachforEachOfSeries->eachSerieseachOfLimit->forEachLimitmapmapSeriesmapLimitmapValuesmapValuesSeriesmapValuesLimitfilterfilterSeriesfilterLimitselect->filterselectSeries->filterSeriesselectLimit->filterLimitrejectrejectSeriesrejectLimitdetectdetectSeriesdetectLimitfind->detectfindSeries->detectSeriesfindLimit->detectLimitpick*pickSeries*pickLimit*omit*omitSeries*omitLimit*reduceinject->reducefoldl->reducereduceRightfoldr->reduceRighttransformtransformSeries*transformLimit*sortBysortBySeries*sortByLimit*somesomeSeriessomeLimitany->someanySeries->someSeriesanyLimit->someLimiteveryeverySerieseveryLimitall->everyallSeries->everyallLimit->everyconcatconcatSeriesconcatLimit*
Control Flow
parallelseriesparallelLimittryEachwaterfallangelFall*angelfall->angelFall*whilstdoWhilstuntildoUntilduringdoDuringforevercomposeseqapplyEachapplyEachSeriesqueuepriorityQueuecargoautoautoInjectretryretryableiteratortimestimesSeriestimesLimitrace
Utils
applysetImmediatenextTickmemoizeunmemoizeensureAsyncconstantasyncifywrapSync->asyncifylogdirtimeoutreflectreflectAllcreateLogger
Mode
Benchmark
How to check
$ node perfEnvironment
- 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 |