|
|
||||
|---|---|---|---|---|
| .. | ||||
| README.md | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| all.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| allLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| allSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| angelFall.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| any.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| anyLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| anySeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| apply.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| applyEach.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| applyEachSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| async.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| async.min.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| asyncify.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| auto.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| autoInject.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| cargo.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| compose.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| concat.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| concatLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| concatSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| constant.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| createLogger.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| detect.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| detectLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| detectSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| dir.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| doDuring.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| doUntil.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| doWhilst.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| during.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| each.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| eachLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| eachOf.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| eachOfLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| eachOfSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| eachSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| ensureAsync.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| every.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| everyLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| everySeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| fast.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| filter.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| filterLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| filterSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| find.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| findLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| findSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| foldl.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| foldr.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEach.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEachLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEachOf.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEachOfLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEachOfSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forEachSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| forever.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| groupBy.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| groupByLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| groupBySeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| inject.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| iterator.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| log.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| map.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| mapLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| mapSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| mapValues.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| mapValuesLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| mapValuesSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| memoize.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| nextTick.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| omit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| omitLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| omitSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| package.json | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| parallel.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| parallelLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| pick.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| pickLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| pickSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| priorityQueue.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| queue.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| race.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| reduce.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| reduceRight.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| reflect.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| reflectAll.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| reject.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| rejectLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| rejectSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| retry.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| retryable.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| safe.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| select.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| selectLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| selectSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| seq.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| series.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| setImmediate.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| some.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| someLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| someSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| sortBy.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| sortByLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| sortBySeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| timeout.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| times.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| timesLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| timesSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| transform.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| transformLimit.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| transformSeries.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| tryEach.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| unmemoize.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| until.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| waterfall.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| whilst.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||
| wrapSync.js | 11e3a9652a | %!s(int64=7) %!d(string=hace) años | ||

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!
<script src="async.min.js"></script>
require(['async'], function(async) {});
I recommend to use Aigle.
It is optimized for Promise handling and has almost the same functionality as neo-async.
$ npm install neo-async
var async = require('neo-async');
$ npm install neo-async
$ ln -s ./node_modules/neo-async ./node_modules/async
var async = require('async');
bower install neo-async
* not in Async
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 *parallelseriesparallelLimittryEachwaterfallangelFall *angelfall -> angelFall *whilstdoWhilstuntildoUntilduringdoDuringforevercomposeseqapplyEachapplyEachSeriesqueuepriorityQueuecargoautoautoInjectretryretryableiteratortimestimesSeriestimesLimitraceapplysetImmediatenextTickmemoizeunmemoizeensureAsyncconstantasyncifywrapSync -> asyncifylogdirtimeoutreflectreflectAllcreateLogger$ git clone git@github.com:suguru03/async-benchmark.git
$ cd async-benchmark
$ npm install
$ node . // It might take more than one hour...
Neo-Async is 1.27 ~ 10.7 times faster than Async.
The value is the ratio (Neo-Async/Async) of the average speed.
| function | benchmark | func-comparator |
|---|---|---|
| each | 3.71 | 2.54 |
| eachSeries | 2.14 | 1.90 |
| eachLimit | 2.14 | 1.88 |
| eachOf | 3.30 | 2.50 |
| eachOfSeries | 1.97 | 1.83 |
| eachOfLimit | 2.02 | 1.80 |
| map | 4.20 | 4.11 |
| mapSeries | 2.40 | 3.65 |
| mapLimit | 2.64 | 2.66 |
| mapValues | 5.71 | 5.32 |
| mapValuesSeries | 3.82 | 3.23 |
| mapValuesLimit | 3.10 | 2.38 |
| filter | 8.11 | 8.76 |
| filterSeries | 5.79 | 4.86 |
| filterLimit | 4.00 | 3.32 |
| reject | 9.47 | 9.52 |
| rejectSeries | 7.39 | 4.64 |
| rejectLimit | 4.54 | 3.49 |
| detect | 6.67 | 6.37 |
| detectSeries | 3.54 | 3.73 |
| detectLimit | 2.38 | 2.62 |
| reduce | 4.13 | 3.23 |
| reduceRight | 4.23 | 3.24 |
| transform | 5.30 | 5.17 |
| sortBy | 2.24 | 2.37 |
| some | 6.39 | 6.10 |
| someSeries | 5.37 | 4.66 |
| someLimit | 3.39 | 2.84 |
| every | 6.85 | 6.27 |
| everySeries | 4.53 | 3.90 |
| everyLimit | 3.36 | 2.75 |
| concat | 9.18 | 9.35 |
| concatSeries | 7.49 | 6.09 |
| funciton | benchmark | func-comparator |
|---|---|---|
| parallel | 7.54 | 5.45 |
| series | 3.29 | 2.41 |
| waterfall | 5.12 | 4.27 |
| whilst | 1.96 | 1.95 |
| doWhilst | 2.07 | 1.96 |
| until | 2.10 | 1.99 |
| doUntil | 1.98 | 2.04 |
| during | 10.7 | 7.09 |
| doDuring | 5.98 | 6.03 |
| queue | 1.83 | 1.75 |
| priorityQueue | 1.79 | 1.75 |
| times | 3.84 | 3.65 |
| race | 1.45 | 1.27 |
| auto | 3.23 | 3.50 |
| retry | 9.43 | 6.78 |