liangjiahao 8f813121f8 添加查看按钮的窗口 %!s(int64=3) %!d(string=hai) anos
..
LICENSE fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
README.md fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
all.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
allLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
allSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
angelFall.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
any.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
anyLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
anySeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
apply.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
applyEach.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
applyEachSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
async.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
async.min.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
asyncify.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
auto.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
autoInject.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
cargo.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
compose.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
concat.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
concatLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
concatSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
constant.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
createLogger.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
detect.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
detectLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
detectSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
dir.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
doDuring.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
doUntil.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
doWhilst.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
during.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
each.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
eachLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
eachOf.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
eachOfLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
eachOfSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
eachSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
ensureAsync.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
every.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
everyLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
everySeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
fast.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
filter.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
filterLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
filterSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
find.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
findLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
findSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
foldl.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
foldr.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEach.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEachLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEachOf.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEachOfLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEachOfSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forEachSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
forever.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
groupBy.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
groupByLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
groupBySeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
inject.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
iterator.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
log.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
map.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
mapLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
mapSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
mapValues.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
mapValuesLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
mapValuesSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
memoize.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
nextTick.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
omit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
omitLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
omitSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
package.json 8f813121f8 添加查看按钮的窗口 %!s(int64=3) %!d(string=hai) anos
parallel.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
parallelLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
pick.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
pickLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
pickSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
priorityQueue.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
queue.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
race.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
reduce.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
reduceRight.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
reflect.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
reflectAll.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
reject.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
rejectLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
rejectSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
retry.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
retryable.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
safe.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
select.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
selectLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
selectSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
seq.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
series.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
setImmediate.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
some.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
someLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
someSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
sortBy.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
sortByLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
sortBySeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
timeout.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
times.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
timesLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
timesSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
transform.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
transformLimit.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
transformSeries.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
tryEach.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
unmemoize.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
until.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
waterfall.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
whilst.js fcedc92fa0 完成了基础 %!s(int64=3) %!d(string=hai) anos
wrapSync.js fcedc92fa0 完成了基础 %!s(int64=3) %!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