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