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

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