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