You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Björn b963b3396c
init
4 years ago
..
LICENSE init 4 years ago
README.md init 4 years ago
all.js init 4 years ago
allLimit.js init 4 years ago
allSeries.js init 4 years ago
angelFall.js init 4 years ago
any.js init 4 years ago
anyLimit.js init 4 years ago
anySeries.js init 4 years ago
apply.js init 4 years ago
applyEach.js init 4 years ago
applyEachSeries.js init 4 years ago
async.js init 4 years ago
async.min.js init 4 years ago
asyncify.js init 4 years ago
auto.js init 4 years ago
autoInject.js init 4 years ago
cargo.js init 4 years ago
compose.js init 4 years ago
concat.js init 4 years ago
concatLimit.js init 4 years ago
concatSeries.js init 4 years ago
constant.js init 4 years ago
createLogger.js init 4 years ago
detect.js init 4 years ago
detectLimit.js init 4 years ago
detectSeries.js init 4 years ago
dir.js init 4 years ago
doDuring.js init 4 years ago
doUntil.js init 4 years ago
doWhilst.js init 4 years ago
during.js init 4 years ago
each.js init 4 years ago
eachLimit.js init 4 years ago
eachOf.js init 4 years ago
eachOfLimit.js init 4 years ago
eachOfSeries.js init 4 years ago
eachSeries.js init 4 years ago
ensureAsync.js init 4 years ago
every.js init 4 years ago
everyLimit.js init 4 years ago
everySeries.js init 4 years ago
fast.js init 4 years ago
filter.js init 4 years ago
filterLimit.js init 4 years ago
filterSeries.js init 4 years ago
find.js init 4 years ago
findLimit.js init 4 years ago
findSeries.js init 4 years ago
foldl.js init 4 years ago
foldr.js init 4 years ago
forEach.js init 4 years ago
forEachLimit.js init 4 years ago
forEachOf.js init 4 years ago
forEachOfLimit.js init 4 years ago
forEachOfSeries.js init 4 years ago
forEachSeries.js init 4 years ago
forever.js init 4 years ago
groupBy.js init 4 years ago
groupByLimit.js init 4 years ago
groupBySeries.js init 4 years ago
inject.js init 4 years ago
iterator.js init 4 years ago
log.js init 4 years ago
map.js init 4 years ago
mapLimit.js init 4 years ago
mapSeries.js init 4 years ago
mapValues.js init 4 years ago
mapValuesLimit.js init 4 years ago
mapValuesSeries.js init 4 years ago
memoize.js init 4 years ago
nextTick.js init 4 years ago
omit.js init 4 years ago
omitLimit.js init 4 years ago
omitSeries.js init 4 years ago
package.json init 4 years ago
parallel.js init 4 years ago
parallelLimit.js init 4 years ago
pick.js init 4 years ago
pickLimit.js init 4 years ago
pickSeries.js init 4 years ago
priorityQueue.js init 4 years ago
queue.js init 4 years ago
race.js init 4 years ago
reduce.js init 4 years ago
reduceRight.js init 4 years ago
reflect.js init 4 years ago
reflectAll.js init 4 years ago
reject.js init 4 years ago
rejectLimit.js init 4 years ago
rejectSeries.js init 4 years ago
retry.js init 4 years ago
retryable.js init 4 years ago
safe.js init 4 years ago
select.js init 4 years ago
selectLimit.js init 4 years ago
selectSeries.js init 4 years ago
seq.js init 4 years ago
series.js init 4 years ago
setImmediate.js init 4 years ago
some.js init 4 years ago
someLimit.js init 4 years ago
someSeries.js init 4 years ago
sortBy.js init 4 years ago
sortByLimit.js init 4 years ago
sortBySeries.js init 4 years ago
timeout.js init 4 years ago
times.js init 4 years ago
timesLimit.js init 4 years ago
timesSeries.js init 4 years ago
transform.js init 4 years ago
transformLimit.js init 4 years ago
transformSeries.js init 4 years ago
tryEach.js init 4 years ago
unmemoize.js init 4 years ago
until.js init 4 years ago
waterfall.js init 4 years ago
whilst.js init 4 years ago
wrapSync.js init 4 years ago

README.md

Neo-Async

npm Travis Status Coverage Status download Code Quality: Javascript 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