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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts

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