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

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