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