Nessuna descrizione

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

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