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