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

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