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

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