Nenhuma Descrição

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

README.md

Neo-Async

npm Travis Codecov Dependency Status npm

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

$ git clone git@github.com:suguru03/async-benchmark.git
$ cd async-benchmark
$ npm install
$ node . // It might take more than one hour...

Environment

  • Ubuntu v12.04
  • Node.js v6.2.1
  • async v2.0.0-rc.6
  • neo-async v2.0.0-rc.1
  • benchmark v2.1.0
  • func-comparator v0.7.1

Result

Neo-Async is 1.27 ~ 10.7 times faster than Async.

The value is the ratio (Neo-Async/Async) of the average speed.

Collections

function benchmark func-comparator
each 3.71 2.54
eachSeries 2.14 1.90
eachLimit 2.14 1.88
eachOf 3.30 2.50
eachOfSeries 1.97 1.83
eachOfLimit 2.02 1.80
map 4.20 4.11
mapSeries 2.40 3.65
mapLimit 2.64 2.66
mapValues 5.71 5.32
mapValuesSeries 3.82 3.23
mapValuesLimit 3.10 2.38
filter 8.11 8.76
filterSeries 5.79 4.86
filterLimit 4.00 3.32
reject 9.47 9.52
rejectSeries 7.39 4.64
rejectLimit 4.54 3.49
detect 6.67 6.37
detectSeries 3.54 3.73
detectLimit 2.38 2.62
reduce 4.13 3.23
reduceRight 4.23 3.24
transform 5.30 5.17
sortBy 2.24 2.37
some 6.39 6.10
someSeries 5.37 4.66
someLimit 3.39 2.84
every 6.85 6.27
everySeries 4.53 3.90
everyLimit 3.36 2.75
concat 9.18 9.35
concatSeries 7.49 6.09

Control Flow

funciton benchmark func-comparator
parallel 7.54 5.45
series 3.29 2.41
waterfall 5.12 4.27
whilst 1.96 1.95
doWhilst 2.07 1.96
until 2.10 1.99
doUntil 1.98 2.04
during 10.7 7.09
doDuring 5.98 6.03
queue 1.83 1.75
priorityQueue 1.79 1.75
times 3.84 3.65
race 1.45 1.27
auto 3.23 3.50
retry 9.43 6.78