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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts

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