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

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