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

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