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