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

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