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