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

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