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