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

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