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