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