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

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