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