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