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

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