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

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