Nav apraksta

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

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