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

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