Aucune description

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

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