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