Geen omschrijving

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

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