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

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