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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts

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