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

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