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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts FOSSA

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

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-async
var async = require('neo-async');

replacement

$ npm install neo-async
$ ln -s ./node_modules/neo-async ./node_modules/async
var async = require('async');

Bower

bower install neo-async

Feature

JSDoc

* not in Async

Collections

Control Flow

Utils

Mode

Benchmark

Benchmark: Async vs Neo-Async

How to check

$ 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

FOSSA Status