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