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

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