summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2019-05-26 15:54:10 -0700
committerAlexander Early <alexander.early@gmail.com>2019-05-26 15:54:10 -0700
commit023d9a47edb98ba9c7151f01ec5609277ee08d5f (patch)
treec2ee2d1cc38c361658633ae6d0a24a6b4aad4be8
parent33b8337f5913214248c9b83cd33a392aad90ac64 (diff)
downloadasync-023d9a47edb98ba9c7151f01ec5609277ee08d5f.tar.gz
move docs to v3
-rw-r--r--docs/index.html289
-rw-r--r--docs/v3/apply.js.html (renamed from docs/apply.js.html)0
-rw-r--r--docs/v3/applyEach.js.html (renamed from docs/applyEach.js.html)0
-rw-r--r--docs/v3/applyEachSeries.js.html (renamed from docs/applyEachSeries.js.html)0
-rw-r--r--docs/v3/asyncify.js.html (renamed from docs/asyncify.js.html)0
-rw-r--r--docs/v3/auto.js.html (renamed from docs/auto.js.html)0
-rw-r--r--docs/v3/autoInject.js.html (renamed from docs/autoInject.js.html)0
-rw-r--r--docs/v3/cargo.js.html (renamed from docs/cargo.js.html)0
-rw-r--r--docs/v3/cargoQueue.js.html (renamed from docs/cargoQueue.js.html)0
-rw-r--r--docs/v3/compose.js.html (renamed from docs/compose.js.html)0
-rw-r--r--docs/v3/concat.js.html (renamed from docs/concat.js.html)0
-rw-r--r--docs/v3/concatLimit.js.html (renamed from docs/concatLimit.js.html)0
-rw-r--r--docs/v3/concatSeries.js.html (renamed from docs/concatSeries.js.html)0
-rw-r--r--docs/v3/constant.js.html (renamed from docs/constant.js.html)0
-rw-r--r--docs/v3/data/methodNames.json (renamed from docs/data/methodNames.json)0
-rw-r--r--docs/v3/data/sourceFiles.json (renamed from docs/data/sourceFiles.json)0
-rw-r--r--docs/v3/detect.js.html (renamed from docs/detect.js.html)0
-rw-r--r--docs/v3/detectLimit.js.html (renamed from docs/detectLimit.js.html)0
-rw-r--r--docs/v3/detectSeries.js.html (renamed from docs/detectSeries.js.html)0
-rw-r--r--docs/v3/dir.js.html (renamed from docs/dir.js.html)0
-rw-r--r--docs/v3/doUntil.js.html (renamed from docs/doUntil.js.html)0
-rw-r--r--docs/v3/doWhilst.js.html (renamed from docs/doWhilst.js.html)0
-rw-r--r--docs/v3/docs.html (renamed from docs/docs.html)0
-rw-r--r--docs/v3/each.js.html (renamed from docs/each.js.html)0
-rw-r--r--docs/v3/eachLimit.js.html (renamed from docs/eachLimit.js.html)0
-rw-r--r--docs/v3/eachOf.js.html (renamed from docs/eachOf.js.html)0
-rw-r--r--docs/v3/eachOfLimit.js.html (renamed from docs/eachOfLimit.js.html)0
-rw-r--r--docs/v3/eachOfSeries.js.html (renamed from docs/eachOfSeries.js.html)0
-rw-r--r--docs/v3/eachSeries.js.html (renamed from docs/eachSeries.js.html)0
-rw-r--r--docs/v3/ensureAsync.js.html (renamed from docs/ensureAsync.js.html)0
-rw-r--r--docs/v3/every.js.html (renamed from docs/every.js.html)0
-rw-r--r--docs/v3/everyLimit.js.html (renamed from docs/everyLimit.js.html)0
-rw-r--r--docs/v3/everySeries.js.html (renamed from docs/everySeries.js.html)0
-rwxr-xr-xdocs/v3/favicon.ico (renamed from docs/favicon.ico)bin22382 -> 22382 bytes
-rw-r--r--docs/v3/filter.js.html (renamed from docs/filter.js.html)0
-rw-r--r--docs/v3/filterLimit.js.html (renamed from docs/filterLimit.js.html)0
-rw-r--r--docs/v3/filterSeries.js.html (renamed from docs/filterSeries.js.html)0
-rw-r--r--docs/v3/fonts/OpenSans-Bold-webfont.eot (renamed from docs/fonts/OpenSans-Bold-webfont.eot)bin19544 -> 19544 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Bold-webfont.svg (renamed from docs/fonts/OpenSans-Bold-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-Bold-webfont.woff (renamed from docs/fonts/OpenSans-Bold-webfont.woff)bin22432 -> 22432 bytes
-rw-r--r--docs/v3/fonts/OpenSans-BoldItalic-webfont.eot (renamed from docs/fonts/OpenSans-BoldItalic-webfont.eot)bin20133 -> 20133 bytes
-rw-r--r--docs/v3/fonts/OpenSans-BoldItalic-webfont.svg (renamed from docs/fonts/OpenSans-BoldItalic-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-BoldItalic-webfont.woff (renamed from docs/fonts/OpenSans-BoldItalic-webfont.woff)bin23048 -> 23048 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Italic-webfont.eot (renamed from docs/fonts/OpenSans-Italic-webfont.eot)bin20265 -> 20265 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Italic-webfont.svg (renamed from docs/fonts/OpenSans-Italic-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-Italic-webfont.woff (renamed from docs/fonts/OpenSans-Italic-webfont.woff)bin23188 -> 23188 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Light-webfont.eot (renamed from docs/fonts/OpenSans-Light-webfont.eot)bin19514 -> 19514 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Light-webfont.svg (renamed from docs/fonts/OpenSans-Light-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-Light-webfont.woff (renamed from docs/fonts/OpenSans-Light-webfont.woff)bin22248 -> 22248 bytes
-rw-r--r--docs/v3/fonts/OpenSans-LightItalic-webfont.eot (renamed from docs/fonts/OpenSans-LightItalic-webfont.eot)bin20535 -> 20535 bytes
-rw-r--r--docs/v3/fonts/OpenSans-LightItalic-webfont.svg (renamed from docs/fonts/OpenSans-LightItalic-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-LightItalic-webfont.woff (renamed from docs/fonts/OpenSans-LightItalic-webfont.woff)bin23400 -> 23400 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Regular-webfont.eot (renamed from docs/fonts/OpenSans-Regular-webfont.eot)bin19836 -> 19836 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Regular-webfont.svg (renamed from docs/fonts/OpenSans-Regular-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-Regular-webfont.woff (renamed from docs/fonts/OpenSans-Regular-webfont.woff)bin22660 -> 22660 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Semibold-webfont.eot (renamed from docs/fonts/OpenSans-Semibold-webfont.eot)bin20028 -> 20028 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Semibold-webfont.svg (renamed from docs/fonts/OpenSans-Semibold-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-Semibold-webfont.ttf (renamed from docs/fonts/OpenSans-Semibold-webfont.ttf)bin39476 -> 39476 bytes
-rw-r--r--docs/v3/fonts/OpenSans-Semibold-webfont.woff (renamed from docs/fonts/OpenSans-Semibold-webfont.woff)bin22908 -> 22908 bytes
-rw-r--r--docs/v3/fonts/OpenSans-SemiboldItalic-webfont.eot (renamed from docs/fonts/OpenSans-SemiboldItalic-webfont.eot)bin20962 -> 20962 bytes
-rw-r--r--docs/v3/fonts/OpenSans-SemiboldItalic-webfont.svg (renamed from docs/fonts/OpenSans-SemiboldItalic-webfont.svg)0
-rw-r--r--docs/v3/fonts/OpenSans-SemiboldItalic-webfont.ttf (renamed from docs/fonts/OpenSans-SemiboldItalic-webfont.ttf)bin40252 -> 40252 bytes
-rw-r--r--docs/v3/fonts/OpenSans-SemiboldItalic-webfont.woff (renamed from docs/fonts/OpenSans-SemiboldItalic-webfont.woff)bin23764 -> 23764 bytes
-rw-r--r--docs/v3/forever.js.html (renamed from docs/forever.js.html)0
-rw-r--r--docs/v3/global.html (renamed from docs/global.html)0
-rw-r--r--docs/v3/groupBy.js.html (renamed from docs/groupBy.js.html)0
-rw-r--r--docs/v3/groupByLimit.js.html (renamed from docs/groupByLimit.js.html)0
-rw-r--r--docs/v3/groupBySeries.js.html (renamed from docs/groupBySeries.js.html)0
-rw-r--r--docs/v3/img/async-logo.svg (renamed from docs/img/async-logo.svg)0
-rw-r--r--docs/v3/index.html288
-rw-r--r--docs/v3/index.js.html (renamed from docs/index.js.html)0
-rw-r--r--docs/v3/log.js.html (renamed from docs/log.js.html)0
-rw-r--r--docs/v3/map.js.html (renamed from docs/map.js.html)0
-rw-r--r--docs/v3/mapLimit.js.html (renamed from docs/mapLimit.js.html)0
-rw-r--r--docs/v3/mapSeries.js.html (renamed from docs/mapSeries.js.html)0
-rw-r--r--docs/v3/mapValues.js.html (renamed from docs/mapValues.js.html)0
-rw-r--r--docs/v3/mapValuesLimit.js.html (renamed from docs/mapValuesLimit.js.html)0
-rw-r--r--docs/v3/mapValuesSeries.js.html (renamed from docs/mapValuesSeries.js.html)0
-rw-r--r--docs/v3/memoize.js.html (renamed from docs/memoize.js.html)0
-rw-r--r--docs/v3/module-Collections.html (renamed from docs/module-Collections.html)0
-rw-r--r--docs/v3/module-ControlFlow.html (renamed from docs/module-ControlFlow.html)0
-rw-r--r--docs/v3/module-Utils.html (renamed from docs/module-Utils.html)0
-rw-r--r--docs/v3/module-async.html (renamed from docs/module-async.html)0
-rw-r--r--docs/v3/nextTick.js.html (renamed from docs/nextTick.js.html)0
-rw-r--r--docs/v3/parallel.js.html (renamed from docs/parallel.js.html)0
-rw-r--r--docs/v3/parallelLimit.js.html (renamed from docs/parallelLimit.js.html)0
-rw-r--r--docs/v3/priorityQueue.js.html (renamed from docs/priorityQueue.js.html)0
-rw-r--r--docs/v3/queue.js.html (renamed from docs/queue.js.html)0
-rw-r--r--docs/v3/race.js.html (renamed from docs/race.js.html)0
-rw-r--r--docs/v3/reduce.js.html (renamed from docs/reduce.js.html)0
-rw-r--r--docs/v3/reduceRight.js.html (renamed from docs/reduceRight.js.html)0
-rw-r--r--docs/v3/reflect.js.html (renamed from docs/reflect.js.html)0
-rw-r--r--docs/v3/reflectAll.js.html (renamed from docs/reflectAll.js.html)0
-rw-r--r--docs/v3/reject.js.html (renamed from docs/reject.js.html)0
-rw-r--r--docs/v3/rejectLimit.js.html (renamed from docs/rejectLimit.js.html)0
-rw-r--r--docs/v3/rejectSeries.js.html (renamed from docs/rejectSeries.js.html)0
-rw-r--r--docs/v3/retry.js.html (renamed from docs/retry.js.html)0
-rw-r--r--docs/v3/retryable.js.html (renamed from docs/retryable.js.html)0
-rw-r--r--docs/v3/scripts/async.js (renamed from docs/scripts/async.js)0
-rw-r--r--docs/v3/scripts/jsdoc-custom.js (renamed from docs/scripts/jsdoc-custom.js)0
-rw-r--r--docs/v3/scripts/linenumber.js (renamed from docs/scripts/linenumber.js)0
-rw-r--r--docs/v3/scripts/prettify/Apache-License-2.0.txt (renamed from docs/scripts/prettify/Apache-License-2.0.txt)0
-rw-r--r--docs/v3/scripts/prettify/lang-css.js (renamed from docs/scripts/prettify/lang-css.js)0
-rw-r--r--docs/v3/scripts/prettify/prettify.js (renamed from docs/scripts/prettify/prettify.js)0
-rw-r--r--docs/v3/seq.js.html (renamed from docs/seq.js.html)0
-rw-r--r--docs/v3/series.js.html (renamed from docs/series.js.html)0
-rw-r--r--docs/v3/setImmediate.js.html (renamed from docs/setImmediate.js.html)0
-rw-r--r--docs/v3/some.js.html (renamed from docs/some.js.html)0
-rw-r--r--docs/v3/someLimit.js.html (renamed from docs/someLimit.js.html)0
-rw-r--r--docs/v3/someSeries.js.html (renamed from docs/someSeries.js.html)0
-rw-r--r--docs/v3/sortBy.js.html (renamed from docs/sortBy.js.html)0
-rw-r--r--docs/v3/styles/jsdoc-default.css (renamed from docs/styles/jsdoc-default.css)0
-rw-r--r--docs/v3/styles/prettify-jsdoc.css (renamed from docs/styles/prettify-jsdoc.css)0
-rw-r--r--docs/v3/styles/prettify-tomorrow.css (renamed from docs/styles/prettify-tomorrow.css)0
-rw-r--r--docs/v3/timeout.js.html (renamed from docs/timeout.js.html)0
-rw-r--r--docs/v3/times.js.html (renamed from docs/times.js.html)0
-rw-r--r--docs/v3/timesLimit.js.html (renamed from docs/timesLimit.js.html)0
-rw-r--r--docs/v3/timesSeries.js.html (renamed from docs/timesSeries.js.html)0
-rw-r--r--docs/v3/transform.js.html (renamed from docs/transform.js.html)0
-rw-r--r--docs/v3/tryEach.js.html (renamed from docs/tryEach.js.html)0
-rw-r--r--docs/v3/unmemoize.js.html (renamed from docs/unmemoize.js.html)0
-rw-r--r--docs/v3/until.js.html (renamed from docs/until.js.html)0
-rw-r--r--docs/v3/waterfall.js.html (renamed from docs/waterfall.js.html)0
-rw-r--r--docs/v3/whilst.js.html (renamed from docs/whilst.js.html)0
-rw-r--r--support/jsdoc/jsdoc-fix-html.js2
-rw-r--r--support/jsdoc/jsdoc.json2
126 files changed, 291 insertions, 290 deletions
diff --git a/docs/index.html b/docs/index.html
index c23c29d..8f0f310 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,288 +1 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Home - Documentation</title>
-
-
- <link rel="icon" href="favicon.ico?v=2">
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap/3.3.6/css/bootstrap.min.css">
-
- <link rel="stylesheet" href="styles/prettify-tomorrow.css">
-
- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,700">
- <link rel="stylesheet" href="styles/jsdoc-default.css">
-
- <!--[if lt IE 9]>
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]-->
- <link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/ionicons/2.0.1/css/ionicons.min.css">
-</head>
-<body>
-
-<div class="navbar navbar-default navbar-fixed-top">
- <div class="navbar-header">
- <a class="navbar-brand" href="#">
- <img src="img/async-logo.svg" alt="Async.js">
- </a>
- </div>
- <ul class="nav navbar-nav">
- <li id="version-dropdown" class="dropdown">
- <a href="#" class="dropdown-toggle vertically-centered" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">v3.0.1 <span class="caret"></span>
- </a>
- <ul class="dropdown-menu">
- <li><a href="docs.html">v3.0.1</a></li>
- <li>
- <a href="https://github.com/caolan/async/blob/v1.5.2/README.md">v1.5.x</a>
- </li>
- </ul>
- </li>
- <li><a href="./index.html">Home</a></li>
- <li><a href="./docs.html">Docs</a></li>
- <li><a href="https://github.com/caolan/async/blob/master/CHANGELOG.md">Changelog</a></li>
- <li><a href="https://github.com/caolan/async"><i class="ion-social-github" aria-hidden="true"></i></a></li>
- </ul>
- <ul class="nav navbar-nav navbar-right">
- <form class="navbar-form navbar-left" role="search">
- <div class="form-group">
- <input type="text" class="form-control typeahead" id="doc-search" placeholder="Search" autofocus>
- </div>
- </form>
- </ul>
-</div>
-
-
-<input type="checkbox" id="nav-trigger" class="nav-trigger">
-<label for="nav-trigger" class="navicon-button x">
- <div class="navicon"></div>
-</label>
-
-<label for="nav-trigger" class="overlay"></label>
-
-<div id="main">
- <div id="main-container" data-spy="scroll" data-target="#toc" data-offset="50">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <section class="readme">
- <article><p><img src="https://raw.githubusercontent.com/caolan/async/master/logo/async-logo_readme.jpg" alt="Async Logo"></p>
-<p><a href="https://travis-ci.org/caolan/async"><img src="https://travis-ci.org/caolan/async.svg?branch=master" alt="Build Status via Travis CI"></a>
-<a href="https://www.npmjs.com/package/async"><img src="https://img.shields.io/npm/v/async.svg" alt="NPM version"></a>
-<a href="https://coveralls.io/r/caolan/async?branch=master"><img src="https://coveralls.io/repos/caolan/async/badge.svg?branch=master" alt="Coverage Status"></a>
-<a href="https://gitter.im/caolan/async?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge&amp;utm_content=badge"><img src="https://badges.gitter.im/Join%20Chat.svg" alt="Join the chat at https://gitter.im/caolan/async"></a></p>
-<p><em>For Async v1.5.x documentation, go <a href="https://github.com/caolan/async/blob/v1.5.2/README.md">HERE</a></em></p>
-<p>Async is a utility module which provides straight-forward, powerful functions
-for working with asynchronous JavaScript. Although originally designed for
-use with <a href="https://nodejs.org/">Node.js</a> and installable via <code>npm install async</code>,
-it can also be used directly in the browser.</p>
-<p>Async is also installable via:</p>
-<ul>
-<li><a href="https://yarnpkg.com/en/">yarn</a>: <code>yarn add async</code></li>
-<li><a href="http://bower.io/">bower</a>: <code>bower install async</code></li>
-</ul>
-<p>Async provides around 70 functions that include the usual &apos;functional&apos;
-suspects (<code>map</code>, <code>reduce</code>, <code>filter</code>, <code>each</code>&#x2026;) as well as some common patterns
-for asynchronous control flow (<code>parallel</code>, <code>series</code>, <code>waterfall</code>&#x2026;). All these
-functions assume you follow the Node.js convention of providing a single
-callback as the last argument of your asynchronous function -- a callback which expects an Error as its first argument -- and calling the callback once.</p>
-<h2>Quick Examples</h2><pre class="prettyprint source lang-js"><code>async.map([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], fs.stat, function(err, results) {
- // results is now an array of stats for each file
-});
-
-async.filter([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
- fs.access(filePath, function(err) {
- callback(null, !err)
- });
-}, function(err, results) {
- // results now equals an array of the existing files
-});
-
-async.parallel([
- function(callback) { ... },
- function(callback) { ... }
-], function(err, results) {
- // optional callback
-});
-
-async.series([
- function(callback) { ... },
- function(callback) { ... }
-]);</code></pre><p>There are many more functions available so take a look at the docs below for a
-full list. This module aims to be comprehensive, so if you feel anything is
-missing please create a GitHub issue for it.</p>
-<h2>Common Pitfalls <a href="http://stackoverflow.com/questions/tagged/async.js">(StackOverflow)</a></h2><h3>Synchronous iteration functions</h3><p>If you get an error like <code>RangeError: Maximum call stack size exceeded.</code> or other stack overflow issues when using async, you are likely using a synchronous iteratee. By <em>synchronous</em> we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with <code>async.setImmediate</code> to start a new call stack on the next tick of the event loop.</p>
-<p>This can also arise by accident if you callback early in certain cases:</p>
-<pre class="prettyprint source lang-js"><code>async.eachSeries(hugeArray, function iteratee(item, callback) {
- if (inCache(item)) {
- callback(null, cache[item]); // if many items are cached, you&apos;ll overflow
- } else {
- doSomeIO(item, callback);
- }
-}, function done() {
- //...
-});</code></pre><p>Just change it to:</p>
-<pre class="prettyprint source lang-js"><code>async.eachSeries(hugeArray, function iteratee(item, callback) {
- if (inCache(item)) {
- async.setImmediate(function() {
- callback(null, cache[item]);
- });
- } else {
- doSomeIO(item, callback);
- //...
- }
-});</code></pre><p>Async does not guard against synchronous iteratees for performance reasons. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with <a href="#ensureAsync"><code>async.ensureAsync</code></a> Functions that are asynchronous by their nature do not have this problem and don&apos;t need the extra callback deferral.</p>
-<p>If JavaScript&apos;s event loop is still a bit nebulous, check out <a href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">this article</a> or <a href="http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html">this talk</a> for more detailed information about how it works.</p>
-<h3>Multiple callbacks</h3><p>Make sure to always <code>return</code> when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases.</p>
-<pre class="prettyprint source lang-js"><code>async.waterfall([
- function(callback) {
- getSomething(options, function (err, result) {
- if (err) {
- callback(new Error(&quot;failed getting something:&quot; + err.message));
- // we should return here
- }
- // since we did not return, this callback still will be called and
- // `processData` will be called twice
- callback(null, result);
- });
- },
- processData
-], done)</code></pre><p>It is always good practice to <code>return callback(err, result)</code> whenever a callback call is not the last statement of a function.</p>
-<h3>Using ES2017 <code>async</code> functions</h3><p>Async accepts <code>async</code> functions wherever we accept a Node-style callback function. However, we do not pass them a callback, and instead use the return value and handle any promise rejections or errors thrown.</p>
-<pre class="prettyprint source lang-js"><code>async.mapLimit(files, 10, async file =&gt; { // &lt;- no callback!
- const text = await util.promisify(fs.readFile)(dir + file, &apos;utf8&apos;)
- const body = JSON.parse(text) // &lt;- a parse error here will be caught automatically
- if (!(await checkValidity(body))) {
- throw new Error(`${file} has invalid contents`) // &lt;- this error will also be caught
- }
- return body // &lt;- return a value!
-}, (err, contents) =&gt; {
- if (err) throw err
- console.log(contents)
-})</code></pre><p>We can only detect native <code>async</code> functions, not transpiled versions (e.g. with Babel). Otherwise, you can wrap <code>async</code> functions in <code>async.asyncify()</code>.</p>
-<h3>Binding a context to an iteratee</h3><p>This section is really about <code>bind</code>, not about Async. If you are wondering how to
-make Async execute your iteratees in a given context, or are confused as to why
-a method of another library isn&apos;t working as an iteratee, study this example:</p>
-<pre class="prettyprint source lang-js"><code>// Here is a simple object with an (unnecessarily roundabout) squaring method
-var AsyncSquaringLibrary = {
- squareExponent: 2,
- square: function(number, callback){
- var result = Math.pow(number, this.squareExponent);
- setTimeout(function(){
- callback(null, result);
- }, 200);
- }
-};
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result) {
- // result is [NaN, NaN, NaN]
- // This fails because the `this.squareExponent` expression in the square
- // function is not evaluated in the context of AsyncSquaringLibrary, and is
- // therefore undefined.
-});
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result) {
- // result is [1, 4, 9]
- // With the help of bind we can attach a context to the iteratee before
- // passing it to Async. Now the square function will be executed in its
- // &apos;home&apos; AsyncSquaringLibrary context and the value of `this.squareExponent`
- // will be as expected.
-});</code></pre><h3>Subtle Memory Leaks</h3><p>There are cases where you might want to exit early from async flow, when calling an Async method inside another async function:</p>
-<pre class="prettyprint source lang-javascript"><code>function myFunction (args, outerCallback) {
- async.waterfall([
- //...
- function (arg, next) {
- if (someImportantCondition()) {
- return outerCallback(null)
- }
- },
- function (arg, next) {/*...*/}
- ], function done (err) {
- //...
- })
-}</code></pre><p>Something happened in a waterfall where you want to skip the rest of the execution, so you call an outer callack. However, Async will still wait for that inner <code>next</code> callback to be called, leaving some closure scope allocated.</p>
-<p>As of version 3.0, you can call any Async callback with <code>false</code> as the <code>error</code> argument, and the rest of the execution of the Async method will be stopped or ignored.</p>
-<pre class="prettyprint source lang-javascript"><code> function (arg, next) {
- if (someImportantCondition()) {
- outerCallback(null)
- return next(false) // &#x2190; signal that you called an outer callback
- }
- },</code></pre><h3>Mutating collections</h3><p>If you pass an array to a collection method (such as <code>each</code>, <code>mapLimit</code>, or <code>filterSeries</code>), and then attempt to <code>push</code>, <code>pop</code>, or <code>splice</code> additional items on to the array, this could lead to unexpected or undefined behavior. Async will iterate until the original <code>length</code> of the array is met, and the indexes of items <code>pop()</code>ed or <code>splice()</code>d could already have been processed. Therefore, it is not recommended to modify the array after Async has begun iterating over it. If you do need to <code>push</code>, <code>pop</code>, or <code>splice</code>, use a <code>queue</code> instead.</p>
-<h2>Download</h2><p>The source is available for download from
-<a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.min.js">GitHub</a>.
-Alternatively, you can install using npm:</p>
-<pre class="prettyprint source lang-bash"><code>$ npm install async</code></pre><p>As well as using Bower:</p>
-<pre class="prettyprint source lang-bash"><code>$ bower install async</code></pre><p>You can then <code>require()</code> async as normal:</p>
-<pre class="prettyprint source lang-js"><code>var async = require(&quot;async&quot;);</code></pre><p>Or require individual methods:</p>
-<pre class="prettyprint source lang-js"><code>var waterfall = require(&quot;async/waterfall&quot;);
-var map = require(&quot;async/map&quot;);</code></pre><p><strong>Development:</strong> <a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.js">async.js</a> - 29.6kb Uncompressed</p>
-<h3>In the Browser</h3><p>Async should work in any ES2015 environment (Node 6+ and all modern browsers).</p>
-<p>If you want to use Async in an older environment, (e.g. Node 4, IE11) you will have to transpile.</p>
-<p>Usage:</p>
-<pre class="prettyprint source lang-html"><code>&lt;script type=&quot;text/javascript&quot; src=&quot;async.js&quot;&gt;&lt;/script&gt;
-&lt;script type=&quot;text/javascript&quot;&gt;
-
- async.map(data, asyncProcess, function(err, results) {
- alert(results);
- });
-
-&lt;/script&gt;</code></pre><p>The portable versions of Async, including <code>async.js</code> and <code>async.min.js</code>, are
-included in the <code>/dist</code> folder. Async can also be found on the <a href="http://www.jsdelivr.com/projects/async">jsDelivr CDN</a>.</p>
-<h3>ES Modules</h3><p>Async includes a <code>.mjs</code> version that should automatically be used by compatible bundlers such as Webpack or Rollup, anything that uses the <code>module</code> field of the <code>package.json</code>.</p>
-<p>We also provide Async as a collection of purely ES2015 modules, in an alternative <code>async-es</code> package on npm.</p>
-<pre class="prettyprint source lang-bash"><code>$ npm install async-es</code></pre><pre class="prettyprint source lang-js"><code>import waterfall from &apos;async-es/waterfall&apos;;
-import async from &apos;async-es&apos;;</code></pre><h2>Other Libraries</h2><ul>
-<li><a href="https://www.npmjs.com/package/limiter"><code>limiter</code></a> a package for rate-limiting based on requests per sec/hour.</li>
-<li><a href="https://www.npmjs.com/package/neo-async"><code>neo-async</code></a> an altername implementation of Async, focusing on speed.</li>
-<li><a href="https://www.npmjs.com/package/co-async"><code>co-async</code></a> a library inspired by Async for use with <a href="https://www.npmjs.com/package/co"><code>co</code></a> and generator functions.</li>
-<li><a href="https://www.npmjs.com/package/promise-async"><code>promise-async</code></a> a version of Async where all the methods are Promisified.</li>
-</ul></article>
- </section>
-
-
-
-
-
-
- <footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun May 26 2019 14:58:49 GMT-0700 (Pacific Daylight Time) using the Minami theme.
- Documentation has been modified from the original. For more information, please see the <a href="https://github.com/caolan/async">async</a> repository.</footer></div>
-</div>
-
-<nav id="toc">
- <h3>Methods:</h3><ul class="nav methods"><li class="toc-header"><a href="docs.html#collections">Collections</a></li><li data-type="method" class="toc-method"><a href="docs.html#concat">concat</a></li><li data-type="method" class="toc-method"><a href="docs.html#concatLimit">concatLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#concatSeries">concatSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#detect">detect</a></li><li data-type="method" class="toc-method"><a href="docs.html#detectLimit">detectLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#detectSeries">detectSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#each">each</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachLimit">eachLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOf">eachOf</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOfLimit">eachOfLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOfSeries">eachOfSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachSeries">eachSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#every">every</a></li><li data-type="method" class="toc-method"><a href="docs.html#everyLimit">everyLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#everySeries">everySeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#filter">filter</a></li><li data-type="method" class="toc-method"><a href="docs.html#filterLimit">filterLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#filterSeries">filterSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupBy">groupBy</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupByLimit">groupByLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupBySeries">groupBySeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#map">map</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapLimit">mapLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapSeries">mapSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValues">mapValues</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValuesLimit">mapValuesLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValuesSeries">mapValuesSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#reduce">reduce</a></li><li data-type="method" class="toc-method"><a href="docs.html#reduceRight">reduceRight</a></li><li data-type="method" class="toc-method"><a href="docs.html#reject">reject</a></li><li data-type="method" class="toc-method"><a href="docs.html#rejectLimit">rejectLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#rejectSeries">rejectSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#some">some</a></li><li data-type="method" class="toc-method"><a href="docs.html#someLimit">someLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#someSeries">someSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#sortBy">sortBy</a></li><li data-type="method" class="toc-method"><a href="docs.html#transform">transform</a></li><li class="toc-header"><a href="docs.html#controlflow">Control Flow</a></li><li data-type="method" class="toc-method"><a href="docs.html#applyEach">applyEach</a></li><li data-type="method" class="toc-method"><a href="docs.html#applyEachSeries">applyEachSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#auto">auto</a></li><li data-type="method" class="toc-method"><a href="docs.html#autoInject">autoInject</a></li><li data-type="method" class="toc-method"><a href="docs.html#cargo">cargo</a></li><li data-type="method" class="toc-method"><a href="docs.html#cargoQueue">cargoQueue</a></li><li data-type="method" class="toc-method"><a href="docs.html#compose">compose</a></li><li data-type="method" class="toc-method"><a href="docs.html#doUntil">doUntil</a></li><li data-type="method" class="toc-method"><a href="docs.html#doWhilst">doWhilst</a></li><li data-type="method" class="toc-method"><a href="docs.html#forever">forever</a></li><li data-type="method" class="toc-method"><a href="docs.html#parallel">parallel</a></li><li data-type="method" class="toc-method"><a href="docs.html#parallelLimit">parallelLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#priorityQueue">priorityQueue</a></li><li data-type="method" class="toc-method"><a href="docs.html#queue">queue</a></li><li data-type="method" class="toc-method"><a href="docs.html#race">race</a></li><li data-type="method" class="toc-method"><a href="docs.html#retry">retry</a></li><li data-type="method" class="toc-method"><a href="docs.html#retryable">retryable</a></li><li data-type="method" class="toc-method"><a href="docs.html#seq">seq</a></li><li data-type="method" class="toc-method"><a href="docs.html#series">series</a></li><li data-type="method" class="toc-method"><a href="docs.html#times">times</a></li><li data-type="method" class="toc-method"><a href="docs.html#timesLimit">timesLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#timesSeries">timesSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#tryEach">tryEach</a></li><li data-type="method" class="toc-method"><a href="docs.html#until">until</a></li><li data-type="method" class="toc-method"><a href="docs.html#waterfall">waterfall</a></li><li data-type="method" class="toc-method"><a href="docs.html#whilst">whilst</a></li><li class="toc-header"><a href="docs.html#utils">Utils</a></li><li data-type="method" class="toc-method"><a href="docs.html#apply">apply</a></li><li data-type="method" class="toc-method"><a href="docs.html#asyncify">asyncify</a></li><li data-type="method" class="toc-method"><a href="docs.html#constant">constant</a></li><li data-type="method" class="toc-method"><a href="docs.html#dir">dir</a></li><li data-type="method" class="toc-method"><a href="docs.html#ensureAsync">ensureAsync</a></li><li data-type="method" class="toc-method"><a href="docs.html#log">log</a></li><li data-type="method" class="toc-method"><a href="docs.html#memoize">memoize</a></li><li data-type="method" class="toc-method"><a href="docs.html#nextTick">nextTick</a></li><li data-type="method" class="toc-method"><a href="docs.html#reflect">reflect</a></li><li data-type="method" class="toc-method"><a href="docs.html#reflectAll">reflectAll</a></li><li data-type="method" class="toc-method"><a href="docs.html#setImmediate">setImmediate</a></li><li data-type="method" class="toc-method"><a href="docs.html#timeout">timeout</a></li><li data-type="method" class="toc-method"><a href="docs.html#unmemoize">unmemoize</a></li></ul><h3>Methods:</h3>
-</nav>
-
-<br class="clear">
-
-
-
-
-<script src="https://cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
-
-<script src="https://cdn.jsdelivr.net/jquery/2.2.4/jquery.min.js"></script>
-<script src="https://cdn.jsdelivr.net/bootstrap/3.3.6/js/bootstrap.min.js"></script>
-<script src="https://cdn.jsdelivr.net/typeahead.js/0.11.1/typeahead.bundle.min.js"></script>
-<script>prettyPrint();</script>
-<script src="scripts/async.js"></script>
-
-<script src="scripts/linenumber.js" async></script>
-<script src="scripts/jsdoc-custom.js" async></script>
-</body> \ No newline at end of file
+<meta http-equiv="refresh" content="0; url=v3/" />
diff --git a/docs/apply.js.html b/docs/v3/apply.js.html
index 352f455..352f455 100644
--- a/docs/apply.js.html
+++ b/docs/v3/apply.js.html
diff --git a/docs/applyEach.js.html b/docs/v3/applyEach.js.html
index 0d40dcd..0d40dcd 100644
--- a/docs/applyEach.js.html
+++ b/docs/v3/applyEach.js.html
diff --git a/docs/applyEachSeries.js.html b/docs/v3/applyEachSeries.js.html
index e68709b..e68709b 100644
--- a/docs/applyEachSeries.js.html
+++ b/docs/v3/applyEachSeries.js.html
diff --git a/docs/asyncify.js.html b/docs/v3/asyncify.js.html
index c751b50..c751b50 100644
--- a/docs/asyncify.js.html
+++ b/docs/v3/asyncify.js.html
diff --git a/docs/auto.js.html b/docs/v3/auto.js.html
index ee07488..ee07488 100644
--- a/docs/auto.js.html
+++ b/docs/v3/auto.js.html
diff --git a/docs/autoInject.js.html b/docs/v3/autoInject.js.html
index bba98f3..bba98f3 100644
--- a/docs/autoInject.js.html
+++ b/docs/v3/autoInject.js.html
diff --git a/docs/cargo.js.html b/docs/v3/cargo.js.html
index bd3eb00..bd3eb00 100644
--- a/docs/cargo.js.html
+++ b/docs/v3/cargo.js.html
diff --git a/docs/cargoQueue.js.html b/docs/v3/cargoQueue.js.html
index af340cf..af340cf 100644
--- a/docs/cargoQueue.js.html
+++ b/docs/v3/cargoQueue.js.html
diff --git a/docs/compose.js.html b/docs/v3/compose.js.html
index 9c93de4..9c93de4 100644
--- a/docs/compose.js.html
+++ b/docs/v3/compose.js.html
diff --git a/docs/concat.js.html b/docs/v3/concat.js.html
index 0cee132..0cee132 100644
--- a/docs/concat.js.html
+++ b/docs/v3/concat.js.html
diff --git a/docs/concatLimit.js.html b/docs/v3/concatLimit.js.html
index c5b0dfa..c5b0dfa 100644
--- a/docs/concatLimit.js.html
+++ b/docs/v3/concatLimit.js.html
diff --git a/docs/concatSeries.js.html b/docs/v3/concatSeries.js.html
index 9ad8b3b..9ad8b3b 100644
--- a/docs/concatSeries.js.html
+++ b/docs/v3/concatSeries.js.html
diff --git a/docs/constant.js.html b/docs/v3/constant.js.html
index 43e65c3..43e65c3 100644
--- a/docs/constant.js.html
+++ b/docs/v3/constant.js.html
diff --git a/docs/data/methodNames.json b/docs/v3/data/methodNames.json
index 5dc9f64..5dc9f64 100644
--- a/docs/data/methodNames.json
+++ b/docs/v3/data/methodNames.json
diff --git a/docs/data/sourceFiles.json b/docs/v3/data/sourceFiles.json
index f335ce2..f335ce2 100644
--- a/docs/data/sourceFiles.json
+++ b/docs/v3/data/sourceFiles.json
diff --git a/docs/detect.js.html b/docs/v3/detect.js.html
index 57b2402..57b2402 100644
--- a/docs/detect.js.html
+++ b/docs/v3/detect.js.html
diff --git a/docs/detectLimit.js.html b/docs/v3/detectLimit.js.html
index 062748a..062748a 100644
--- a/docs/detectLimit.js.html
+++ b/docs/v3/detectLimit.js.html
diff --git a/docs/detectSeries.js.html b/docs/v3/detectSeries.js.html
index b766cfc..b766cfc 100644
--- a/docs/detectSeries.js.html
+++ b/docs/v3/detectSeries.js.html
diff --git a/docs/dir.js.html b/docs/v3/dir.js.html
index 9a5823e..9a5823e 100644
--- a/docs/dir.js.html
+++ b/docs/v3/dir.js.html
diff --git a/docs/doUntil.js.html b/docs/v3/doUntil.js.html
index 9cef0fc..9cef0fc 100644
--- a/docs/doUntil.js.html
+++ b/docs/v3/doUntil.js.html
diff --git a/docs/doWhilst.js.html b/docs/v3/doWhilst.js.html
index 39f4e07..39f4e07 100644
--- a/docs/doWhilst.js.html
+++ b/docs/v3/doWhilst.js.html
diff --git a/docs/docs.html b/docs/v3/docs.html
index e183d45..e183d45 100644
--- a/docs/docs.html
+++ b/docs/v3/docs.html
diff --git a/docs/each.js.html b/docs/v3/each.js.html
index 03b55f3..03b55f3 100644
--- a/docs/each.js.html
+++ b/docs/v3/each.js.html
diff --git a/docs/eachLimit.js.html b/docs/v3/eachLimit.js.html
index aa9e951..aa9e951 100644
--- a/docs/eachLimit.js.html
+++ b/docs/v3/eachLimit.js.html
diff --git a/docs/eachOf.js.html b/docs/v3/eachOf.js.html
index 2bc38f6..2bc38f6 100644
--- a/docs/eachOf.js.html
+++ b/docs/v3/eachOf.js.html
diff --git a/docs/eachOfLimit.js.html b/docs/v3/eachOfLimit.js.html
index d0877d2..d0877d2 100644
--- a/docs/eachOfLimit.js.html
+++ b/docs/v3/eachOfLimit.js.html
diff --git a/docs/eachOfSeries.js.html b/docs/v3/eachOfSeries.js.html
index 867a92f..867a92f 100644
--- a/docs/eachOfSeries.js.html
+++ b/docs/v3/eachOfSeries.js.html
diff --git a/docs/eachSeries.js.html b/docs/v3/eachSeries.js.html
index d2ae655..d2ae655 100644
--- a/docs/eachSeries.js.html
+++ b/docs/v3/eachSeries.js.html
diff --git a/docs/ensureAsync.js.html b/docs/v3/ensureAsync.js.html
index 83748c3..83748c3 100644
--- a/docs/ensureAsync.js.html
+++ b/docs/v3/ensureAsync.js.html
diff --git a/docs/every.js.html b/docs/v3/every.js.html
index 1a3a016..1a3a016 100644
--- a/docs/every.js.html
+++ b/docs/v3/every.js.html
diff --git a/docs/everyLimit.js.html b/docs/v3/everyLimit.js.html
index 0aef9ea..0aef9ea 100644
--- a/docs/everyLimit.js.html
+++ b/docs/v3/everyLimit.js.html
diff --git a/docs/everySeries.js.html b/docs/v3/everySeries.js.html
index 9e56390..9e56390 100644
--- a/docs/everySeries.js.html
+++ b/docs/v3/everySeries.js.html
diff --git a/docs/favicon.ico b/docs/v3/favicon.ico
index 4a90dff..4a90dff 100755
--- a/docs/favicon.ico
+++ b/docs/v3/favicon.ico
Binary files differ
diff --git a/docs/filter.js.html b/docs/v3/filter.js.html
index 2d8402a..2d8402a 100644
--- a/docs/filter.js.html
+++ b/docs/v3/filter.js.html
diff --git a/docs/filterLimit.js.html b/docs/v3/filterLimit.js.html
index 049d7a6..049d7a6 100644
--- a/docs/filterLimit.js.html
+++ b/docs/v3/filterLimit.js.html
diff --git a/docs/filterSeries.js.html b/docs/v3/filterSeries.js.html
index 2482e73..2482e73 100644
--- a/docs/filterSeries.js.html
+++ b/docs/v3/filterSeries.js.html
diff --git a/docs/fonts/OpenSans-Bold-webfont.eot b/docs/v3/fonts/OpenSans-Bold-webfont.eot
index 5d20d91..5d20d91 100644
--- a/docs/fonts/OpenSans-Bold-webfont.eot
+++ b/docs/v3/fonts/OpenSans-Bold-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-Bold-webfont.svg b/docs/v3/fonts/OpenSans-Bold-webfont.svg
index 3ed7be4..3ed7be4 100644
--- a/docs/fonts/OpenSans-Bold-webfont.svg
+++ b/docs/v3/fonts/OpenSans-Bold-webfont.svg
diff --git a/docs/fonts/OpenSans-Bold-webfont.woff b/docs/v3/fonts/OpenSans-Bold-webfont.woff
index 1205787..1205787 100644
--- a/docs/fonts/OpenSans-Bold-webfont.woff
+++ b/docs/v3/fonts/OpenSans-Bold-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-BoldItalic-webfont.eot b/docs/v3/fonts/OpenSans-BoldItalic-webfont.eot
index 1f639a1..1f639a1 100644
--- a/docs/fonts/OpenSans-BoldItalic-webfont.eot
+++ b/docs/v3/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-BoldItalic-webfont.svg b/docs/v3/fonts/OpenSans-BoldItalic-webfont.svg
index 6a2607b..6a2607b 100644
--- a/docs/fonts/OpenSans-BoldItalic-webfont.svg
+++ b/docs/v3/fonts/OpenSans-BoldItalic-webfont.svg
diff --git a/docs/fonts/OpenSans-BoldItalic-webfont.woff b/docs/v3/fonts/OpenSans-BoldItalic-webfont.woff
index ed760c0..ed760c0 100644
--- a/docs/fonts/OpenSans-BoldItalic-webfont.woff
+++ b/docs/v3/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-Italic-webfont.eot b/docs/v3/fonts/OpenSans-Italic-webfont.eot
index 0c8a0ae..0c8a0ae 100644
--- a/docs/fonts/OpenSans-Italic-webfont.eot
+++ b/docs/v3/fonts/OpenSans-Italic-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-Italic-webfont.svg b/docs/v3/fonts/OpenSans-Italic-webfont.svg
index e1075dc..e1075dc 100644
--- a/docs/fonts/OpenSans-Italic-webfont.svg
+++ b/docs/v3/fonts/OpenSans-Italic-webfont.svg
diff --git a/docs/fonts/OpenSans-Italic-webfont.woff b/docs/v3/fonts/OpenSans-Italic-webfont.woff
index ff652e6..ff652e6 100644
--- a/docs/fonts/OpenSans-Italic-webfont.woff
+++ b/docs/v3/fonts/OpenSans-Italic-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-Light-webfont.eot b/docs/v3/fonts/OpenSans-Light-webfont.eot
index 1486840..1486840 100644
--- a/docs/fonts/OpenSans-Light-webfont.eot
+++ b/docs/v3/fonts/OpenSans-Light-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-Light-webfont.svg b/docs/v3/fonts/OpenSans-Light-webfont.svg
index 11a472c..11a472c 100644
--- a/docs/fonts/OpenSans-Light-webfont.svg
+++ b/docs/v3/fonts/OpenSans-Light-webfont.svg
diff --git a/docs/fonts/OpenSans-Light-webfont.woff b/docs/v3/fonts/OpenSans-Light-webfont.woff
index e786074..e786074 100644
--- a/docs/fonts/OpenSans-Light-webfont.woff
+++ b/docs/v3/fonts/OpenSans-Light-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-LightItalic-webfont.eot b/docs/v3/fonts/OpenSans-LightItalic-webfont.eot
index 8f44592..8f44592 100644
--- a/docs/fonts/OpenSans-LightItalic-webfont.eot
+++ b/docs/v3/fonts/OpenSans-LightItalic-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-LightItalic-webfont.svg b/docs/v3/fonts/OpenSans-LightItalic-webfont.svg
index 431d7e3..431d7e3 100644
--- a/docs/fonts/OpenSans-LightItalic-webfont.svg
+++ b/docs/v3/fonts/OpenSans-LightItalic-webfont.svg
diff --git a/docs/fonts/OpenSans-LightItalic-webfont.woff b/docs/v3/fonts/OpenSans-LightItalic-webfont.woff
index 43e8b9e..43e8b9e 100644
--- a/docs/fonts/OpenSans-LightItalic-webfont.woff
+++ b/docs/v3/fonts/OpenSans-LightItalic-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-Regular-webfont.eot b/docs/v3/fonts/OpenSans-Regular-webfont.eot
index 6bbc3cf..6bbc3cf 100644
--- a/docs/fonts/OpenSans-Regular-webfont.eot
+++ b/docs/v3/fonts/OpenSans-Regular-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-Regular-webfont.svg b/docs/v3/fonts/OpenSans-Regular-webfont.svg
index 25a3952..25a3952 100644
--- a/docs/fonts/OpenSans-Regular-webfont.svg
+++ b/docs/v3/fonts/OpenSans-Regular-webfont.svg
diff --git a/docs/fonts/OpenSans-Regular-webfont.woff b/docs/v3/fonts/OpenSans-Regular-webfont.woff
index e231183..e231183 100644
--- a/docs/fonts/OpenSans-Regular-webfont.woff
+++ b/docs/v3/fonts/OpenSans-Regular-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-Semibold-webfont.eot b/docs/v3/fonts/OpenSans-Semibold-webfont.eot
index d8375dd..d8375dd 100644
--- a/docs/fonts/OpenSans-Semibold-webfont.eot
+++ b/docs/v3/fonts/OpenSans-Semibold-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-Semibold-webfont.svg b/docs/v3/fonts/OpenSans-Semibold-webfont.svg
index eec4db8..eec4db8 100644
--- a/docs/fonts/OpenSans-Semibold-webfont.svg
+++ b/docs/v3/fonts/OpenSans-Semibold-webfont.svg
diff --git a/docs/fonts/OpenSans-Semibold-webfont.ttf b/docs/v3/fonts/OpenSans-Semibold-webfont.ttf
index b329084..b329084 100644
--- a/docs/fonts/OpenSans-Semibold-webfont.ttf
+++ b/docs/v3/fonts/OpenSans-Semibold-webfont.ttf
Binary files differ
diff --git a/docs/fonts/OpenSans-Semibold-webfont.woff b/docs/v3/fonts/OpenSans-Semibold-webfont.woff
index 28d6ade..28d6ade 100644
--- a/docs/fonts/OpenSans-Semibold-webfont.woff
+++ b/docs/v3/fonts/OpenSans-Semibold-webfont.woff
Binary files differ
diff --git a/docs/fonts/OpenSans-SemiboldItalic-webfont.eot b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.eot
index 0ab1db2..0ab1db2 100644
--- a/docs/fonts/OpenSans-SemiboldItalic-webfont.eot
+++ b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.eot
Binary files differ
diff --git a/docs/fonts/OpenSans-SemiboldItalic-webfont.svg b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.svg
index 7166ec1..7166ec1 100644
--- a/docs/fonts/OpenSans-SemiboldItalic-webfont.svg
+++ b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.svg
diff --git a/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.ttf
index d2d6318..d2d6318 100644
--- a/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf
+++ b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.ttf
Binary files differ
diff --git a/docs/fonts/OpenSans-SemiboldItalic-webfont.woff b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.woff
index d4dfca4..d4dfca4 100644
--- a/docs/fonts/OpenSans-SemiboldItalic-webfont.woff
+++ b/docs/v3/fonts/OpenSans-SemiboldItalic-webfont.woff
Binary files differ
diff --git a/docs/forever.js.html b/docs/v3/forever.js.html
index 8d6d141..8d6d141 100644
--- a/docs/forever.js.html
+++ b/docs/v3/forever.js.html
diff --git a/docs/global.html b/docs/v3/global.html
index 12f4e3f..12f4e3f 100644
--- a/docs/global.html
+++ b/docs/v3/global.html
diff --git a/docs/groupBy.js.html b/docs/v3/groupBy.js.html
index 2721cee..2721cee 100644
--- a/docs/groupBy.js.html
+++ b/docs/v3/groupBy.js.html
diff --git a/docs/groupByLimit.js.html b/docs/v3/groupByLimit.js.html
index 15864b4..15864b4 100644
--- a/docs/groupByLimit.js.html
+++ b/docs/v3/groupByLimit.js.html
diff --git a/docs/groupBySeries.js.html b/docs/v3/groupBySeries.js.html
index 6a981dd..6a981dd 100644
--- a/docs/groupBySeries.js.html
+++ b/docs/v3/groupBySeries.js.html
diff --git a/docs/img/async-logo.svg b/docs/v3/img/async-logo.svg
index d108be7..d108be7 100644
--- a/docs/img/async-logo.svg
+++ b/docs/v3/img/async-logo.svg
diff --git a/docs/v3/index.html b/docs/v3/index.html
new file mode 100644
index 0000000..c23c29d
--- /dev/null
+++ b/docs/v3/index.html
@@ -0,0 +1,288 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Home - Documentation</title>
+
+
+ <link rel="icon" href="favicon.ico?v=2">
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap/3.3.6/css/bootstrap.min.css">
+
+ <link rel="stylesheet" href="styles/prettify-tomorrow.css">
+
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,700">
+ <link rel="stylesheet" href="styles/jsdoc-default.css">
+
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/ionicons/2.0.1/css/ionicons.min.css">
+</head>
+<body>
+
+<div class="navbar navbar-default navbar-fixed-top">
+ <div class="navbar-header">
+ <a class="navbar-brand" href="#">
+ <img src="img/async-logo.svg" alt="Async.js">
+ </a>
+ </div>
+ <ul class="nav navbar-nav">
+ <li id="version-dropdown" class="dropdown">
+ <a href="#" class="dropdown-toggle vertically-centered" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">v3.0.1 <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu">
+ <li><a href="docs.html">v3.0.1</a></li>
+ <li>
+ <a href="https://github.com/caolan/async/blob/v1.5.2/README.md">v1.5.x</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./index.html">Home</a></li>
+ <li><a href="./docs.html">Docs</a></li>
+ <li><a href="https://github.com/caolan/async/blob/master/CHANGELOG.md">Changelog</a></li>
+ <li><a href="https://github.com/caolan/async"><i class="ion-social-github" aria-hidden="true"></i></a></li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <form class="navbar-form navbar-left" role="search">
+ <div class="form-group">
+ <input type="text" class="form-control typeahead" id="doc-search" placeholder="Search" autofocus>
+ </div>
+ </form>
+ </ul>
+</div>
+
+
+<input type="checkbox" id="nav-trigger" class="nav-trigger">
+<label for="nav-trigger" class="navicon-button x">
+ <div class="navicon"></div>
+</label>
+
+<label for="nav-trigger" class="overlay"></label>
+
+<div id="main">
+ <div id="main-container" data-spy="scroll" data-target="#toc" data-offset="50">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <section class="readme">
+ <article><p><img src="https://raw.githubusercontent.com/caolan/async/master/logo/async-logo_readme.jpg" alt="Async Logo"></p>
+<p><a href="https://travis-ci.org/caolan/async"><img src="https://travis-ci.org/caolan/async.svg?branch=master" alt="Build Status via Travis CI"></a>
+<a href="https://www.npmjs.com/package/async"><img src="https://img.shields.io/npm/v/async.svg" alt="NPM version"></a>
+<a href="https://coveralls.io/r/caolan/async?branch=master"><img src="https://coveralls.io/repos/caolan/async/badge.svg?branch=master" alt="Coverage Status"></a>
+<a href="https://gitter.im/caolan/async?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge&amp;utm_content=badge"><img src="https://badges.gitter.im/Join%20Chat.svg" alt="Join the chat at https://gitter.im/caolan/async"></a></p>
+<p><em>For Async v1.5.x documentation, go <a href="https://github.com/caolan/async/blob/v1.5.2/README.md">HERE</a></em></p>
+<p>Async is a utility module which provides straight-forward, powerful functions
+for working with asynchronous JavaScript. Although originally designed for
+use with <a href="https://nodejs.org/">Node.js</a> and installable via <code>npm install async</code>,
+it can also be used directly in the browser.</p>
+<p>Async is also installable via:</p>
+<ul>
+<li><a href="https://yarnpkg.com/en/">yarn</a>: <code>yarn add async</code></li>
+<li><a href="http://bower.io/">bower</a>: <code>bower install async</code></li>
+</ul>
+<p>Async provides around 70 functions that include the usual &apos;functional&apos;
+suspects (<code>map</code>, <code>reduce</code>, <code>filter</code>, <code>each</code>&#x2026;) as well as some common patterns
+for asynchronous control flow (<code>parallel</code>, <code>series</code>, <code>waterfall</code>&#x2026;). All these
+functions assume you follow the Node.js convention of providing a single
+callback as the last argument of your asynchronous function -- a callback which expects an Error as its first argument -- and calling the callback once.</p>
+<h2>Quick Examples</h2><pre class="prettyprint source lang-js"><code>async.map([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], fs.stat, function(err, results) {
+ // results is now an array of stats for each file
+});
+
+async.filter([&apos;file1&apos;,&apos;file2&apos;,&apos;file3&apos;], function(filePath, callback) {
+ fs.access(filePath, function(err) {
+ callback(null, !err)
+ });
+}, function(err, results) {
+ // results now equals an array of the existing files
+});
+
+async.parallel([
+ function(callback) { ... },
+ function(callback) { ... }
+], function(err, results) {
+ // optional callback
+});
+
+async.series([
+ function(callback) { ... },
+ function(callback) { ... }
+]);</code></pre><p>There are many more functions available so take a look at the docs below for a
+full list. This module aims to be comprehensive, so if you feel anything is
+missing please create a GitHub issue for it.</p>
+<h2>Common Pitfalls <a href="http://stackoverflow.com/questions/tagged/async.js">(StackOverflow)</a></h2><h3>Synchronous iteration functions</h3><p>If you get an error like <code>RangeError: Maximum call stack size exceeded.</code> or other stack overflow issues when using async, you are likely using a synchronous iteratee. By <em>synchronous</em> we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with <code>async.setImmediate</code> to start a new call stack on the next tick of the event loop.</p>
+<p>This can also arise by accident if you callback early in certain cases:</p>
+<pre class="prettyprint source lang-js"><code>async.eachSeries(hugeArray, function iteratee(item, callback) {
+ if (inCache(item)) {
+ callback(null, cache[item]); // if many items are cached, you&apos;ll overflow
+ } else {
+ doSomeIO(item, callback);
+ }
+}, function done() {
+ //...
+});</code></pre><p>Just change it to:</p>
+<pre class="prettyprint source lang-js"><code>async.eachSeries(hugeArray, function iteratee(item, callback) {
+ if (inCache(item)) {
+ async.setImmediate(function() {
+ callback(null, cache[item]);
+ });
+ } else {
+ doSomeIO(item, callback);
+ //...
+ }
+});</code></pre><p>Async does not guard against synchronous iteratees for performance reasons. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with <a href="#ensureAsync"><code>async.ensureAsync</code></a> Functions that are asynchronous by their nature do not have this problem and don&apos;t need the extra callback deferral.</p>
+<p>If JavaScript&apos;s event loop is still a bit nebulous, check out <a href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">this article</a> or <a href="http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html">this talk</a> for more detailed information about how it works.</p>
+<h3>Multiple callbacks</h3><p>Make sure to always <code>return</code> when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases.</p>
+<pre class="prettyprint source lang-js"><code>async.waterfall([
+ function(callback) {
+ getSomething(options, function (err, result) {
+ if (err) {
+ callback(new Error(&quot;failed getting something:&quot; + err.message));
+ // we should return here
+ }
+ // since we did not return, this callback still will be called and
+ // `processData` will be called twice
+ callback(null, result);
+ });
+ },
+ processData
+], done)</code></pre><p>It is always good practice to <code>return callback(err, result)</code> whenever a callback call is not the last statement of a function.</p>
+<h3>Using ES2017 <code>async</code> functions</h3><p>Async accepts <code>async</code> functions wherever we accept a Node-style callback function. However, we do not pass them a callback, and instead use the return value and handle any promise rejections or errors thrown.</p>
+<pre class="prettyprint source lang-js"><code>async.mapLimit(files, 10, async file =&gt; { // &lt;- no callback!
+ const text = await util.promisify(fs.readFile)(dir + file, &apos;utf8&apos;)
+ const body = JSON.parse(text) // &lt;- a parse error here will be caught automatically
+ if (!(await checkValidity(body))) {
+ throw new Error(`${file} has invalid contents`) // &lt;- this error will also be caught
+ }
+ return body // &lt;- return a value!
+}, (err, contents) =&gt; {
+ if (err) throw err
+ console.log(contents)
+})</code></pre><p>We can only detect native <code>async</code> functions, not transpiled versions (e.g. with Babel). Otherwise, you can wrap <code>async</code> functions in <code>async.asyncify()</code>.</p>
+<h3>Binding a context to an iteratee</h3><p>This section is really about <code>bind</code>, not about Async. If you are wondering how to
+make Async execute your iteratees in a given context, or are confused as to why
+a method of another library isn&apos;t working as an iteratee, study this example:</p>
+<pre class="prettyprint source lang-js"><code>// Here is a simple object with an (unnecessarily roundabout) squaring method
+var AsyncSquaringLibrary = {
+ squareExponent: 2,
+ square: function(number, callback){
+ var result = Math.pow(number, this.squareExponent);
+ setTimeout(function(){
+ callback(null, result);
+ }, 200);
+ }
+};
+
+async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result) {
+ // result is [NaN, NaN, NaN]
+ // This fails because the `this.squareExponent` expression in the square
+ // function is not evaluated in the context of AsyncSquaringLibrary, and is
+ // therefore undefined.
+});
+
+async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result) {
+ // result is [1, 4, 9]
+ // With the help of bind we can attach a context to the iteratee before
+ // passing it to Async. Now the square function will be executed in its
+ // &apos;home&apos; AsyncSquaringLibrary context and the value of `this.squareExponent`
+ // will be as expected.
+});</code></pre><h3>Subtle Memory Leaks</h3><p>There are cases where you might want to exit early from async flow, when calling an Async method inside another async function:</p>
+<pre class="prettyprint source lang-javascript"><code>function myFunction (args, outerCallback) {
+ async.waterfall([
+ //...
+ function (arg, next) {
+ if (someImportantCondition()) {
+ return outerCallback(null)
+ }
+ },
+ function (arg, next) {/*...*/}
+ ], function done (err) {
+ //...
+ })
+}</code></pre><p>Something happened in a waterfall where you want to skip the rest of the execution, so you call an outer callack. However, Async will still wait for that inner <code>next</code> callback to be called, leaving some closure scope allocated.</p>
+<p>As of version 3.0, you can call any Async callback with <code>false</code> as the <code>error</code> argument, and the rest of the execution of the Async method will be stopped or ignored.</p>
+<pre class="prettyprint source lang-javascript"><code> function (arg, next) {
+ if (someImportantCondition()) {
+ outerCallback(null)
+ return next(false) // &#x2190; signal that you called an outer callback
+ }
+ },</code></pre><h3>Mutating collections</h3><p>If you pass an array to a collection method (such as <code>each</code>, <code>mapLimit</code>, or <code>filterSeries</code>), and then attempt to <code>push</code>, <code>pop</code>, or <code>splice</code> additional items on to the array, this could lead to unexpected or undefined behavior. Async will iterate until the original <code>length</code> of the array is met, and the indexes of items <code>pop()</code>ed or <code>splice()</code>d could already have been processed. Therefore, it is not recommended to modify the array after Async has begun iterating over it. If you do need to <code>push</code>, <code>pop</code>, or <code>splice</code>, use a <code>queue</code> instead.</p>
+<h2>Download</h2><p>The source is available for download from
+<a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.min.js">GitHub</a>.
+Alternatively, you can install using npm:</p>
+<pre class="prettyprint source lang-bash"><code>$ npm install async</code></pre><p>As well as using Bower:</p>
+<pre class="prettyprint source lang-bash"><code>$ bower install async</code></pre><p>You can then <code>require()</code> async as normal:</p>
+<pre class="prettyprint source lang-js"><code>var async = require(&quot;async&quot;);</code></pre><p>Or require individual methods:</p>
+<pre class="prettyprint source lang-js"><code>var waterfall = require(&quot;async/waterfall&quot;);
+var map = require(&quot;async/map&quot;);</code></pre><p><strong>Development:</strong> <a href="https://raw.githubusercontent.com/caolan/async/master/dist/async.js">async.js</a> - 29.6kb Uncompressed</p>
+<h3>In the Browser</h3><p>Async should work in any ES2015 environment (Node 6+ and all modern browsers).</p>
+<p>If you want to use Async in an older environment, (e.g. Node 4, IE11) you will have to transpile.</p>
+<p>Usage:</p>
+<pre class="prettyprint source lang-html"><code>&lt;script type=&quot;text/javascript&quot; src=&quot;async.js&quot;&gt;&lt;/script&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+ async.map(data, asyncProcess, function(err, results) {
+ alert(results);
+ });
+
+&lt;/script&gt;</code></pre><p>The portable versions of Async, including <code>async.js</code> and <code>async.min.js</code>, are
+included in the <code>/dist</code> folder. Async can also be found on the <a href="http://www.jsdelivr.com/projects/async">jsDelivr CDN</a>.</p>
+<h3>ES Modules</h3><p>Async includes a <code>.mjs</code> version that should automatically be used by compatible bundlers such as Webpack or Rollup, anything that uses the <code>module</code> field of the <code>package.json</code>.</p>
+<p>We also provide Async as a collection of purely ES2015 modules, in an alternative <code>async-es</code> package on npm.</p>
+<pre class="prettyprint source lang-bash"><code>$ npm install async-es</code></pre><pre class="prettyprint source lang-js"><code>import waterfall from &apos;async-es/waterfall&apos;;
+import async from &apos;async-es&apos;;</code></pre><h2>Other Libraries</h2><ul>
+<li><a href="https://www.npmjs.com/package/limiter"><code>limiter</code></a> a package for rate-limiting based on requests per sec/hour.</li>
+<li><a href="https://www.npmjs.com/package/neo-async"><code>neo-async</code></a> an altername implementation of Async, focusing on speed.</li>
+<li><a href="https://www.npmjs.com/package/co-async"><code>co-async</code></a> a library inspired by Async for use with <a href="https://www.npmjs.com/package/co"><code>co</code></a> and generator functions.</li>
+<li><a href="https://www.npmjs.com/package/promise-async"><code>promise-async</code></a> a version of Async where all the methods are Promisified.</li>
+</ul></article>
+ </section>
+
+
+
+
+
+
+ <footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun May 26 2019 14:58:49 GMT-0700 (Pacific Daylight Time) using the Minami theme.
+ Documentation has been modified from the original. For more information, please see the <a href="https://github.com/caolan/async">async</a> repository.</footer></div>
+</div>
+
+<nav id="toc">
+ <h3>Methods:</h3><ul class="nav methods"><li class="toc-header"><a href="docs.html#collections">Collections</a></li><li data-type="method" class="toc-method"><a href="docs.html#concat">concat</a></li><li data-type="method" class="toc-method"><a href="docs.html#concatLimit">concatLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#concatSeries">concatSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#detect">detect</a></li><li data-type="method" class="toc-method"><a href="docs.html#detectLimit">detectLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#detectSeries">detectSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#each">each</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachLimit">eachLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOf">eachOf</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOfLimit">eachOfLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachOfSeries">eachOfSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#eachSeries">eachSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#every">every</a></li><li data-type="method" class="toc-method"><a href="docs.html#everyLimit">everyLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#everySeries">everySeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#filter">filter</a></li><li data-type="method" class="toc-method"><a href="docs.html#filterLimit">filterLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#filterSeries">filterSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupBy">groupBy</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupByLimit">groupByLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#groupBySeries">groupBySeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#map">map</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapLimit">mapLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapSeries">mapSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValues">mapValues</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValuesLimit">mapValuesLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#mapValuesSeries">mapValuesSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#reduce">reduce</a></li><li data-type="method" class="toc-method"><a href="docs.html#reduceRight">reduceRight</a></li><li data-type="method" class="toc-method"><a href="docs.html#reject">reject</a></li><li data-type="method" class="toc-method"><a href="docs.html#rejectLimit">rejectLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#rejectSeries">rejectSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#some">some</a></li><li data-type="method" class="toc-method"><a href="docs.html#someLimit">someLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#someSeries">someSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#sortBy">sortBy</a></li><li data-type="method" class="toc-method"><a href="docs.html#transform">transform</a></li><li class="toc-header"><a href="docs.html#controlflow">Control Flow</a></li><li data-type="method" class="toc-method"><a href="docs.html#applyEach">applyEach</a></li><li data-type="method" class="toc-method"><a href="docs.html#applyEachSeries">applyEachSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#auto">auto</a></li><li data-type="method" class="toc-method"><a href="docs.html#autoInject">autoInject</a></li><li data-type="method" class="toc-method"><a href="docs.html#cargo">cargo</a></li><li data-type="method" class="toc-method"><a href="docs.html#cargoQueue">cargoQueue</a></li><li data-type="method" class="toc-method"><a href="docs.html#compose">compose</a></li><li data-type="method" class="toc-method"><a href="docs.html#doUntil">doUntil</a></li><li data-type="method" class="toc-method"><a href="docs.html#doWhilst">doWhilst</a></li><li data-type="method" class="toc-method"><a href="docs.html#forever">forever</a></li><li data-type="method" class="toc-method"><a href="docs.html#parallel">parallel</a></li><li data-type="method" class="toc-method"><a href="docs.html#parallelLimit">parallelLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#priorityQueue">priorityQueue</a></li><li data-type="method" class="toc-method"><a href="docs.html#queue">queue</a></li><li data-type="method" class="toc-method"><a href="docs.html#race">race</a></li><li data-type="method" class="toc-method"><a href="docs.html#retry">retry</a></li><li data-type="method" class="toc-method"><a href="docs.html#retryable">retryable</a></li><li data-type="method" class="toc-method"><a href="docs.html#seq">seq</a></li><li data-type="method" class="toc-method"><a href="docs.html#series">series</a></li><li data-type="method" class="toc-method"><a href="docs.html#times">times</a></li><li data-type="method" class="toc-method"><a href="docs.html#timesLimit">timesLimit</a></li><li data-type="method" class="toc-method"><a href="docs.html#timesSeries">timesSeries</a></li><li data-type="method" class="toc-method"><a href="docs.html#tryEach">tryEach</a></li><li data-type="method" class="toc-method"><a href="docs.html#until">until</a></li><li data-type="method" class="toc-method"><a href="docs.html#waterfall">waterfall</a></li><li data-type="method" class="toc-method"><a href="docs.html#whilst">whilst</a></li><li class="toc-header"><a href="docs.html#utils">Utils</a></li><li data-type="method" class="toc-method"><a href="docs.html#apply">apply</a></li><li data-type="method" class="toc-method"><a href="docs.html#asyncify">asyncify</a></li><li data-type="method" class="toc-method"><a href="docs.html#constant">constant</a></li><li data-type="method" class="toc-method"><a href="docs.html#dir">dir</a></li><li data-type="method" class="toc-method"><a href="docs.html#ensureAsync">ensureAsync</a></li><li data-type="method" class="toc-method"><a href="docs.html#log">log</a></li><li data-type="method" class="toc-method"><a href="docs.html#memoize">memoize</a></li><li data-type="method" class="toc-method"><a href="docs.html#nextTick">nextTick</a></li><li data-type="method" class="toc-method"><a href="docs.html#reflect">reflect</a></li><li data-type="method" class="toc-method"><a href="docs.html#reflectAll">reflectAll</a></li><li data-type="method" class="toc-method"><a href="docs.html#setImmediate">setImmediate</a></li><li data-type="method" class="toc-method"><a href="docs.html#timeout">timeout</a></li><li data-type="method" class="toc-method"><a href="docs.html#unmemoize">unmemoize</a></li></ul><h3>Methods:</h3>
+</nav>
+
+<br class="clear">
+
+
+
+
+<script src="https://cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
+
+<script src="https://cdn.jsdelivr.net/jquery/2.2.4/jquery.min.js"></script>
+<script src="https://cdn.jsdelivr.net/bootstrap/3.3.6/js/bootstrap.min.js"></script>
+<script src="https://cdn.jsdelivr.net/typeahead.js/0.11.1/typeahead.bundle.min.js"></script>
+<script>prettyPrint();</script>
+<script src="scripts/async.js"></script>
+
+<script src="scripts/linenumber.js" async></script>
+<script src="scripts/jsdoc-custom.js" async></script>
+</body> \ No newline at end of file
diff --git a/docs/index.js.html b/docs/v3/index.js.html
index b9d21bb..b9d21bb 100644
--- a/docs/index.js.html
+++ b/docs/v3/index.js.html
diff --git a/docs/log.js.html b/docs/v3/log.js.html
index 927f881..927f881 100644
--- a/docs/log.js.html
+++ b/docs/v3/log.js.html
diff --git a/docs/map.js.html b/docs/v3/map.js.html
index 95242c7..95242c7 100644
--- a/docs/map.js.html
+++ b/docs/v3/map.js.html
diff --git a/docs/mapLimit.js.html b/docs/v3/mapLimit.js.html
index 52d4615..52d4615 100644
--- a/docs/mapLimit.js.html
+++ b/docs/v3/mapLimit.js.html
diff --git a/docs/mapSeries.js.html b/docs/v3/mapSeries.js.html
index d6946f2..d6946f2 100644
--- a/docs/mapSeries.js.html
+++ b/docs/v3/mapSeries.js.html
diff --git a/docs/mapValues.js.html b/docs/v3/mapValues.js.html
index bb7b227..bb7b227 100644
--- a/docs/mapValues.js.html
+++ b/docs/v3/mapValues.js.html
diff --git a/docs/mapValuesLimit.js.html b/docs/v3/mapValuesLimit.js.html
index 4a2d29a..4a2d29a 100644
--- a/docs/mapValuesLimit.js.html
+++ b/docs/v3/mapValuesLimit.js.html
diff --git a/docs/mapValuesSeries.js.html b/docs/v3/mapValuesSeries.js.html
index ae41e41..ae41e41 100644
--- a/docs/mapValuesSeries.js.html
+++ b/docs/v3/mapValuesSeries.js.html
diff --git a/docs/memoize.js.html b/docs/v3/memoize.js.html
index 18fc607..18fc607 100644
--- a/docs/memoize.js.html
+++ b/docs/v3/memoize.js.html
diff --git a/docs/module-Collections.html b/docs/v3/module-Collections.html
index 852deeb..852deeb 100644
--- a/docs/module-Collections.html
+++ b/docs/v3/module-Collections.html
diff --git a/docs/module-ControlFlow.html b/docs/v3/module-ControlFlow.html
index 66f27de..66f27de 100644
--- a/docs/module-ControlFlow.html
+++ b/docs/v3/module-ControlFlow.html
diff --git a/docs/module-Utils.html b/docs/v3/module-Utils.html
index f983048..f983048 100644
--- a/docs/module-Utils.html
+++ b/docs/v3/module-Utils.html
diff --git a/docs/module-async.html b/docs/v3/module-async.html
index 05c042a..05c042a 100644
--- a/docs/module-async.html
+++ b/docs/v3/module-async.html
diff --git a/docs/nextTick.js.html b/docs/v3/nextTick.js.html
index 586aa71..586aa71 100644
--- a/docs/nextTick.js.html
+++ b/docs/v3/nextTick.js.html
diff --git a/docs/parallel.js.html b/docs/v3/parallel.js.html
index e96c84d..e96c84d 100644
--- a/docs/parallel.js.html
+++ b/docs/v3/parallel.js.html
diff --git a/docs/parallelLimit.js.html b/docs/v3/parallelLimit.js.html
index 3381ce5..3381ce5 100644
--- a/docs/parallelLimit.js.html
+++ b/docs/v3/parallelLimit.js.html
diff --git a/docs/priorityQueue.js.html b/docs/v3/priorityQueue.js.html
index e8be908..e8be908 100644
--- a/docs/priorityQueue.js.html
+++ b/docs/v3/priorityQueue.js.html
diff --git a/docs/queue.js.html b/docs/v3/queue.js.html
index 31803ab..31803ab 100644
--- a/docs/queue.js.html
+++ b/docs/v3/queue.js.html
diff --git a/docs/race.js.html b/docs/v3/race.js.html
index a29fc67..a29fc67 100644
--- a/docs/race.js.html
+++ b/docs/v3/race.js.html
diff --git a/docs/reduce.js.html b/docs/v3/reduce.js.html
index 838471c..838471c 100644
--- a/docs/reduce.js.html
+++ b/docs/v3/reduce.js.html
diff --git a/docs/reduceRight.js.html b/docs/v3/reduceRight.js.html
index 441f5c3..441f5c3 100644
--- a/docs/reduceRight.js.html
+++ b/docs/v3/reduceRight.js.html
diff --git a/docs/reflect.js.html b/docs/v3/reflect.js.html
index d8ee322..d8ee322 100644
--- a/docs/reflect.js.html
+++ b/docs/v3/reflect.js.html
diff --git a/docs/reflectAll.js.html b/docs/v3/reflectAll.js.html
index cf66ca8..cf66ca8 100644
--- a/docs/reflectAll.js.html
+++ b/docs/v3/reflectAll.js.html
diff --git a/docs/reject.js.html b/docs/v3/reject.js.html
index 2fafb50..2fafb50 100644
--- a/docs/reject.js.html
+++ b/docs/v3/reject.js.html
diff --git a/docs/rejectLimit.js.html b/docs/v3/rejectLimit.js.html
index ac01932..ac01932 100644
--- a/docs/rejectLimit.js.html
+++ b/docs/v3/rejectLimit.js.html
diff --git a/docs/rejectSeries.js.html b/docs/v3/rejectSeries.js.html
index 8578ec8..8578ec8 100644
--- a/docs/rejectSeries.js.html
+++ b/docs/v3/rejectSeries.js.html
diff --git a/docs/retry.js.html b/docs/v3/retry.js.html
index 76705e2..76705e2 100644
--- a/docs/retry.js.html
+++ b/docs/v3/retry.js.html
diff --git a/docs/retryable.js.html b/docs/v3/retryable.js.html
index a1e058a..a1e058a 100644
--- a/docs/retryable.js.html
+++ b/docs/v3/retryable.js.html
diff --git a/docs/scripts/async.js b/docs/v3/scripts/async.js
index d58e1f6..d58e1f6 100644
--- a/docs/scripts/async.js
+++ b/docs/v3/scripts/async.js
diff --git a/docs/scripts/jsdoc-custom.js b/docs/v3/scripts/jsdoc-custom.js
index 0d233e6..0d233e6 100644
--- a/docs/scripts/jsdoc-custom.js
+++ b/docs/v3/scripts/jsdoc-custom.js
diff --git a/docs/scripts/linenumber.js b/docs/v3/scripts/linenumber.js
index 8d52f7e..8d52f7e 100644
--- a/docs/scripts/linenumber.js
+++ b/docs/v3/scripts/linenumber.js
diff --git a/docs/scripts/prettify/Apache-License-2.0.txt b/docs/v3/scripts/prettify/Apache-License-2.0.txt
index d645695..d645695 100644
--- a/docs/scripts/prettify/Apache-License-2.0.txt
+++ b/docs/v3/scripts/prettify/Apache-License-2.0.txt
diff --git a/docs/scripts/prettify/lang-css.js b/docs/v3/scripts/prettify/lang-css.js
index 041e1f5..041e1f5 100644
--- a/docs/scripts/prettify/lang-css.js
+++ b/docs/v3/scripts/prettify/lang-css.js
diff --git a/docs/scripts/prettify/prettify.js b/docs/v3/scripts/prettify/prettify.js
index eef5ad7..eef5ad7 100644
--- a/docs/scripts/prettify/prettify.js
+++ b/docs/v3/scripts/prettify/prettify.js
diff --git a/docs/seq.js.html b/docs/v3/seq.js.html
index e9f7f59..e9f7f59 100644
--- a/docs/seq.js.html
+++ b/docs/v3/seq.js.html
diff --git a/docs/series.js.html b/docs/v3/series.js.html
index 93bacce..93bacce 100644
--- a/docs/series.js.html
+++ b/docs/v3/series.js.html
diff --git a/docs/setImmediate.js.html b/docs/v3/setImmediate.js.html
index f2c6c93..f2c6c93 100644
--- a/docs/setImmediate.js.html
+++ b/docs/v3/setImmediate.js.html
diff --git a/docs/some.js.html b/docs/v3/some.js.html
index e6de299..e6de299 100644
--- a/docs/some.js.html
+++ b/docs/v3/some.js.html
diff --git a/docs/someLimit.js.html b/docs/v3/someLimit.js.html
index dc3588d..dc3588d 100644
--- a/docs/someLimit.js.html
+++ b/docs/v3/someLimit.js.html
diff --git a/docs/someSeries.js.html b/docs/v3/someSeries.js.html
index f0b03a4..f0b03a4 100644
--- a/docs/someSeries.js.html
+++ b/docs/v3/someSeries.js.html
diff --git a/docs/sortBy.js.html b/docs/v3/sortBy.js.html
index a8cfcf1..a8cfcf1 100644
--- a/docs/sortBy.js.html
+++ b/docs/v3/sortBy.js.html
diff --git a/docs/styles/jsdoc-default.css b/docs/v3/styles/jsdoc-default.css
index fee48f1..fee48f1 100644
--- a/docs/styles/jsdoc-default.css
+++ b/docs/v3/styles/jsdoc-default.css
diff --git a/docs/styles/prettify-jsdoc.css b/docs/v3/styles/prettify-jsdoc.css
index 834a866..834a866 100644
--- a/docs/styles/prettify-jsdoc.css
+++ b/docs/v3/styles/prettify-jsdoc.css
diff --git a/docs/styles/prettify-tomorrow.css b/docs/v3/styles/prettify-tomorrow.css
index 81e74d1..81e74d1 100644
--- a/docs/styles/prettify-tomorrow.css
+++ b/docs/v3/styles/prettify-tomorrow.css
diff --git a/docs/timeout.js.html b/docs/v3/timeout.js.html
index a29c2d4..a29c2d4 100644
--- a/docs/timeout.js.html
+++ b/docs/v3/timeout.js.html
diff --git a/docs/times.js.html b/docs/v3/times.js.html
index 6456d15..6456d15 100644
--- a/docs/times.js.html
+++ b/docs/v3/times.js.html
diff --git a/docs/timesLimit.js.html b/docs/v3/timesLimit.js.html
index 1b6a6a0..1b6a6a0 100644
--- a/docs/timesLimit.js.html
+++ b/docs/v3/timesLimit.js.html
diff --git a/docs/timesSeries.js.html b/docs/v3/timesSeries.js.html
index 342196d..342196d 100644
--- a/docs/timesSeries.js.html
+++ b/docs/v3/timesSeries.js.html
diff --git a/docs/transform.js.html b/docs/v3/transform.js.html
index 3097285..3097285 100644
--- a/docs/transform.js.html
+++ b/docs/v3/transform.js.html
diff --git a/docs/tryEach.js.html b/docs/v3/tryEach.js.html
index 0764cfe..0764cfe 100644
--- a/docs/tryEach.js.html
+++ b/docs/v3/tryEach.js.html
diff --git a/docs/unmemoize.js.html b/docs/v3/unmemoize.js.html
index 974c0f1..974c0f1 100644
--- a/docs/unmemoize.js.html
+++ b/docs/v3/unmemoize.js.html
diff --git a/docs/until.js.html b/docs/v3/until.js.html
index 425b647..425b647 100644
--- a/docs/until.js.html
+++ b/docs/v3/until.js.html
diff --git a/docs/waterfall.js.html b/docs/v3/waterfall.js.html
index f55bd75..f55bd75 100644
--- a/docs/waterfall.js.html
+++ b/docs/v3/waterfall.js.html
diff --git a/docs/whilst.js.html b/docs/v3/whilst.js.html
index 1cf0ead..1cf0ead 100644
--- a/docs/whilst.js.html
+++ b/docs/v3/whilst.js.html
diff --git a/support/jsdoc/jsdoc-fix-html.js b/support/jsdoc/jsdoc-fix-html.js
index 2cc8991..a51ed85 100644
--- a/support/jsdoc/jsdoc-fix-html.js
+++ b/support/jsdoc/jsdoc-fix-html.js
@@ -6,7 +6,7 @@ var $ = require('cheerio');
var _ = require('lodash');
var VERSION = require('../../package.json').version;
-var docsDir = path.join(__dirname, '../../docs');
+var docsDir = path.join(__dirname, '../../docs/v3');
var pageTitle = 'Methods:';
var docFilename = 'docs.html';
diff --git a/support/jsdoc/jsdoc.json b/support/jsdoc/jsdoc.json
index c90c172..28ee656 100644
--- a/support/jsdoc/jsdoc.json
+++ b/support/jsdoc/jsdoc.json
@@ -11,7 +11,7 @@
"readme": "intro.md",
"template": "support/jsdoc/theme",
"encoding": "utf8",
- "destination": "./docs",
+ "destination": "./docs/v3",
"recurse": true
},
"templates": {