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

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