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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts

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