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

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