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

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