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