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

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