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

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