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

README.md

Neo-Async

npm Travis Status Coverage Status download Code Quality: Javascript 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