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

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