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

README.md

Neo-Async

npm Travis Status Coverage Status download Total Alerts

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