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