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

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