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