neo-async
neo-async copied to clipboard
Neo-Async is thought to be used as a drop-in replacement for Async, it almost fully covers its functionality and runs faster
Neo-Async
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
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
* not in Async
Collections
-
each
-
eachSeries
-
eachLimit
-
forEach
->each
-
forEachSeries
->eachSeries
-
forEachLimit
->eachLimit
-
eachOf
->each
-
eachOfSeries
->eachSeries
-
eachOfLimit
->eachLimit
-
forEachOf
->each
-
forEachOfSeries
->eachSeries
-
eachOfLimit
->forEachLimit
-
map
-
mapSeries
-
mapLimit
-
mapValues
-
mapValuesSeries
-
mapValuesLimit
-
filter
-
filterSeries
-
filterLimit
-
select
->filter
-
selectSeries
->filterSeries
-
selectLimit
->filterLimit
-
reject
-
rejectSeries
-
rejectLimit
-
detect
-
detectSeries
-
detectLimit
-
find
->detect
-
findSeries
->detectSeries
-
findLimit
->detectLimit
-
pick
* -
pickSeries
* -
pickLimit
* -
omit
* -
omitSeries
* -
omitLimit
* -
reduce
-
inject
->reduce
-
foldl
->reduce
-
reduceRight
-
foldr
->reduceRight
-
transform
-
transformSeries
* -
transformLimit
* -
sortBy
-
sortBySeries
* -
sortByLimit
* -
some
-
someSeries
-
someLimit
-
any
->some
-
anySeries
->someSeries
-
anyLimit
->someLimit
-
every
-
everySeries
-
everyLimit
-
all
->every
-
allSeries
->every
-
allLimit
->every
-
concat
-
concatSeries
-
concatLimit
*
Control Flow
-
parallel
-
series
-
parallelLimit
-
tryEach
-
waterfall
-
angelFall
* -
angelfall
->angelFall
* -
whilst
-
doWhilst
-
until
-
doUntil
-
during
-
doDuring
-
forever
-
compose
-
seq
-
applyEach
-
applyEachSeries
-
queue
-
priorityQueue
-
cargo
-
auto
-
autoInject
-
retry
-
retryable
-
iterator
-
times
-
timesSeries
-
timesLimit
-
race
Utils
-
apply
-
setImmediate
-
nextTick
-
memoize
-
unmemoize
-
ensureAsync
-
constant
-
asyncify
-
wrapSync
->asyncify
-
log
-
dir
-
timeout
-
reflect
-
reflectAll
-
createLogger
Mode
-
safe
* -
fast
*
Benchmark
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 |