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

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