"Tue, 29 May 2018 13:12:10 CST">8 lat temu safe.js 11e3a9652a first 8 lat temu select.js 11e3a9652a first 8 lat temu selectLimit.js 11e3a9652a first 8 lat temu selectSeries.js 11e3a9652a first 8 lat temu seq.js 11e3a9652a first 8 lat temu series.js 11e3a9652a first 8 lat temu setImmediate.js 11e3a9652a first 8 lat temu some.js 11e3a9652a first 8 lat temu someLimit.js 11e3a9652a first 8 lat temu someSeries.js 11e3a9652a first 8 lat temu sortBy.js 11e3a9652a first 8 lat temu sortByLimit.js 11e3a9652a first 8 lat temu sortBySeries.js 11e3a9652a first 8 lat temu timeout.js 11e3a9652a first 8 lat temu times.js 11e3a9652a first 8 lat temu timesLimit.js 11e3a9652a first 8 lat temu timesSeries.js 11e3a9652a first 8 lat temu transform.js 11e3a9652a first 8 lat temu transformLimit.js 11e3a9652a first 8 lat temu transformSeries.js 11e3a9652a first 8 lat temu tryEach.js 11e3a9652a first 8 lat temu unmemoize.js 11e3a9652a first 8 lat temu until.js 11e3a9652a first 8 lat temu waterfall.js 11e3a9652a first 8 lat temu whilst.js 11e3a9652a first 8 lat temu wrapSync.js 11e3a9652a first 8 lat temu

README.md

Neo-Async

npm Travis Codecov Dependency Status npm

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

$ git clone git@github.com:suguru03/async-benchmark.git
$ cd async-benchmark
$ npm install
$ node . // It might take more than one hour...

Environment

  • Ubuntu v12.04
  • Node.js v6.2.1
  • async v2.0.0-rc.6
  • neo-async v2.0.0-rc.1
  • benchmark v2.1.0
  • func-comparator v0.7.1

Result

Neo-Async is 1.27 ~ 10.7 times faster than Async.

The value is the ratio (Neo-Async/Async) of the average speed.

Collections

function benchmark func-comparator
each 3.71 2.54
eachSeries 2.14 1.90
eachLimit 2.14 1.88
eachOf 3.30 2.50
eachOfSeries 1.97 1.83
eachOfLimit 2.02 1.80
map 4.20 4.11
mapSeries 2.40 3.65
mapLimit 2.64 2.66
mapValues 5.71 5.32
mapValuesSeries 3.82 3.23
mapValuesLimit 3.10 2.38
filter 8.11 8.76
filterSeries 5.79 4.86
filterLimit 4.00 3.32
reject 9.47 9.52
rejectSeries 7.39 4.64
rejectLimit 4.54 3.49
detect 6.67 6.37
detectSeries 3.54 3.73
detectLimit 2.38 2.62
reduce 4.13 3.23
reduceRight 4.23 3.24
transform 5.30 5.17
sortBy 2.24 2.37
some 6.39 6.10
someSeries 5.37 4.66
someLimit 3.39 2.84
every 6.85 6.27
everySeries 4.53 3.90
everyLimit 3.36 2.75
concat 9.18 9.35
concatSeries 7.49 6.09

Control Flow

funciton benchmark func-comparator
parallel 7.54 5.45
series 3.29 2.41
waterfall 5.12 4.27
whilst 1.96 1.95
doWhilst 2.07 1.96
until 2.10 1.99
doUntil 1.98 2.04
during 10.7 7.09
doDuring 5.98 6.03
queue 1.83 1.75
priorityQueue 1.79 1.75
times 3.84 3.65
race 1.45 1.27
auto 3.23 3.50
retry 9.43 6.78
adminSystem - Gogs: Go Git Service