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

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