Keine Beschreibung

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

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