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

README.md

Neo-Async

npm Travis Status Coverage Status download Code Quality: Javascript 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