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