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