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

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