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

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