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