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