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

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