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