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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts FOSSA

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

$ node perf

Environment

  • Darwin 17.3.0 x64
  • Node.js v8.9.4
  • async v2.6.0
  • neo-async v2.5.0
  • benchmark v2.1.4

Result

The value is the ratio (Neo-Async/Async) of the average speed.

Collections

function benchmark
each/forEach 2.43
eachSeries/forEachSeries 1.75
eachLimit/forEachLimit 1.68
eachOf 3.29
eachOfSeries 1.50
eachOfLimit 1.59
map 3.95
mapSeries 1.81
mapLimit 1.27
mapValues 2.73
mapValuesSeries 1.59
mapValuesLimit 1.23
filter 3.00
filterSeries 1.74
filterLimit 1.17
reject 4.59
rejectSeries 2.31
rejectLimit 1.58
detect 4.30
detectSeries 1.86
detectLimit 1.32
reduce 1.82
transform 2.46
sortBy 4.08
some 2.19
someSeries 1.83
someLimit 1.32
every 2.09
everySeries 1.84
everyLimit 1.35
concat 3.79
concatSeries 4.45

Control Flow

funciton benchmark
parallel 2.93
series 1.96
waterfall 1.29
whilst 1.00
doWhilst 1.12
until 1.12
doUntil 1.12
during 1.18
doDuring 2.42
times 4.25
auto 1.97

License

FOSSA Status