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

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