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

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