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