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

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