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

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