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