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