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