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

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