summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2016-04-29 15:26:25 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2016-04-29 15:26:25 -0400
commitec9f81adfda9ec9681b3f33f24d3c2e917b4b908 (patch)
treebaa261902276ef2a032d7bd0c2f5f9eba23391af
parenta9636c00e269c1bf2f3def12cba36563e7658201 (diff)
downloadasync-doc-linking.tar.gz
Fix doc linking (see #1135)doc-linking
-rw-r--r--lib/applyEachSeries.js2
-rw-r--r--lib/autoInject.js6
-rw-r--r--lib/cargo.js4
-rw-r--r--lib/concatSeries.js2
-rw-r--r--lib/detectLimit.js2
-rw-r--r--lib/detectSeries.js2
-rw-r--r--lib/doDuring.js6
-rw-r--r--lib/doUntil.js4
-rw-r--r--lib/doWhilst.js4
-rw-r--r--lib/during.js4
-rw-r--r--lib/eachLimit.js2
-rw-r--r--lib/eachOfLimit.js2
-rw-r--r--lib/eachOfSeries.js2
-rw-r--r--lib/eachSeries.js2
-rw-r--r--lib/everyLimit.js2
-rw-r--r--lib/everySeries.js2
-rw-r--r--lib/filterLimit.js2
-rw-r--r--lib/filterSeries.js2
-rw-r--r--lib/mapLimit.js2
-rw-r--r--lib/mapSeries.js2
-rw-r--r--lib/parallel.js2
-rw-r--r--lib/parallelLimit.js2
-rw-r--r--lib/priorityQueue.js4
-rw-r--r--lib/reduceRight.js2
-rw-r--r--lib/reflectAll.js2
-rw-r--r--lib/reject.js2
-rw-r--r--lib/rejectLimit.js2
-rw-r--r--lib/rejectSeries.js2
-rw-r--r--lib/retryable.js2
-rw-r--r--lib/seq.js4
-rw-r--r--lib/series.js2
-rw-r--r--lib/someLimit.js2
-rw-r--r--lib/someSeries.js2
-rw-r--r--lib/times.js6
-rw-r--r--lib/timesLimit.js6
-rw-r--r--lib/timesSeries.js6
-rw-r--r--lib/unmemoize.js4
-rw-r--r--lib/until.js4
38 files changed, 56 insertions, 56 deletions
diff --git a/lib/applyEachSeries.js b/lib/applyEachSeries.js
index c56989b..675a029 100644
--- a/lib/applyEachSeries.js
+++ b/lib/applyEachSeries.js
@@ -9,7 +9,7 @@ import mapSeries from './mapSeries';
* @name applyEachSeries
* @static
* @memberOf async
- * @see `async.applyEach`
+ * @see async.applyEach
* @category Control Flow
* @param {Array|Object} fns - A collection of asynchronous functions to all
* call with the same arguments
diff --git a/lib/autoInject.js b/lib/autoInject.js
index 339d7fa..36b23ab 100644
--- a/lib/autoInject.js
+++ b/lib/autoInject.js
@@ -11,7 +11,7 @@ function parseParams(func) {
}
/**
- * A dependency-injected version of the [`auto`](#auto) function. Dependent
+ * A dependency-injected version of the {@link async.auto} function. Dependent
* tasks are specified as parameters to the function, after the usual callback
* parameter, with the parameter names matching the names of the tasks it
* depends on. This can provide even more readable task graphs which can be
@@ -21,12 +21,12 @@ function parseParams(func) {
* specified as named parameters after the initial error parameter.
*
* The autoInject function is purely syntactic sugar and its semantics are
- * otherwise equivalent to [`auto`](#auto).
+ * otherwise equivalent to {@link async.auto}.
*
* @name autoInject
* @static
* @memberOf async
- * @see `async.auto`
+ * @see async.auto
* @category Control Flow
* @param {Object} tasks - An object, each of whose properties is a function of
* the form 'func([dependencies...], callback). The object's key of a property
diff --git a/lib/cargo.js b/lib/cargo.js
index faa4ab4..a2fe98e 100644
--- a/lib/cargo.js
+++ b/lib/cargo.js
@@ -4,7 +4,7 @@ import queue from './internal/queue';
/**
* A cargo of tasks for the worker function to complete. Cargo inherits all of
- * the same methods and event callbacks as [`queue`](#queue).
+ * the same methods and event callbacks as {@link async.queue}.
* @typedef {Object} cargo
* @property {Function} length - A function returning the number of items
* waiting to be processed. Invoke with ().
@@ -46,7 +46,7 @@ import queue from './internal/queue';
* @name cargo
* @static
* @memberOf async
- * @see `async.queue`
+ * @see async.queue
* @category Control Flow
* @param {Function} worker - An asynchronous function for processing an array
* of queued tasks, which must call its `callback(err)` argument when finished,
diff --git a/lib/concatSeries.js b/lib/concatSeries.js
index 3fb89d2..73312dc 100644
--- a/lib/concatSeries.js
+++ b/lib/concatSeries.js
@@ -9,7 +9,7 @@ import doSeries from './internal/doSeries';
* @name concatSeries
* @static
* @memberOf async
- * @see `async.concat`
+ * @see async.concat
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {Function} iteratee - A function to apply to each item in `coll`.
diff --git a/lib/detectLimit.js b/lib/detectLimit.js
index ee9080b..20c8040 100644
--- a/lib/detectLimit.js
+++ b/lib/detectLimit.js
@@ -13,7 +13,7 @@ import findGetResult from './internal/findGetResult';
* @name detectLimit
* @static
* @memberOf async
- * @see `async.detect`
+ * @see async.detect
* @alias findLimit
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/detectSeries.js b/lib/detectSeries.js
index 9c88bda..659d820 100644
--- a/lib/detectSeries.js
+++ b/lib/detectSeries.js
@@ -12,7 +12,7 @@ import findGetResult from './internal/findGetResult';
* @name detectSeries
* @static
* @memberOf async
- * @see `async.detect`
+ * @see async.detect
* @alias findSeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/doDuring.js b/lib/doDuring.js
index 6833a78..76050ab 100644
--- a/lib/doDuring.js
+++ b/lib/doDuring.js
@@ -3,14 +3,14 @@
import during from './during';
/**
- * The post-check version of [`during`](#during). To reflect the difference in
+ * The post-check version of {@link async.during}. To reflect the difference in
* the order of operations, the arguments `test` and `fn` are switched.
*
- * Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function.
+ * Also a version of {@link async.doWhilst} with asynchronous `test` function.
* @name doDuring
* @static
* @memberOf async
- * @see `async.during`
+ * @see async.during
* @category Control Flow
* @param {Function} fn - A function which is called each time `test` passes.
* The function is passed a `callback(err)`, which must be called once it has
diff --git a/lib/doUntil.js b/lib/doUntil.js
index e5c48c9..1ebdd3e 100644
--- a/lib/doUntil.js
+++ b/lib/doUntil.js
@@ -3,13 +3,13 @@
import doWhilst from './doWhilst';
/**
- * Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the
+ * Like {@link async.doWhilst}, except the `test` is inverted. Note the
* argument ordering differs from `until`.
*
* @name doUntil
* @static
* @memberOf async
- * @see `async.doWhilst`
+ * @see async.doWhilst
* @category Control Flow
* @param {Function} fn - A function which is called each time `test` fails.
* The function is passed a `callback(err)`, which must be called once it has
diff --git a/lib/doWhilst.js b/lib/doWhilst.js
index 54c8303..f49cf08 100644
--- a/lib/doWhilst.js
+++ b/lib/doWhilst.js
@@ -3,7 +3,7 @@
import whilst from './whilst';
/**
- * The post-check version of [`whilst`](#whilst). To reflect the difference in
+ * The post-check version of {@link async.whilst}. To reflect the difference in
* the order of operations, the arguments `test` and `fn` are switched.
*
* `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.
@@ -11,7 +11,7 @@ import whilst from './whilst';
* @name doWhilst
* @static
* @memberOf async
- * @see `async.whilst`
+ * @see async.whilst
* @category Control Flow
* @param {Function} fn - A function which is called each time `test` passes.
* The function is passed a `callback(err)`, which must be called once it has
diff --git a/lib/during.js b/lib/during.js
index 7c3d10c..de3b1a1 100644
--- a/lib/during.js
+++ b/lib/during.js
@@ -4,7 +4,7 @@ import noop from 'lodash/noop';
import rest from 'lodash/rest';
/**
- * Like [`whilst`](#whilst), except the `test` is an asynchronous function that
+ * Like {@link async.whilst}, except the `test` is an asynchronous function that
* is passed a callback in the form of `function (err, truth)`. If error is
* passed to `test` or `fn`, the main callback is immediately called with the
* value of the error.
@@ -12,7 +12,7 @@ import rest from 'lodash/rest';
* @name during
* @static
* @memberOf async
- * @see `async.whilst`
+ * @see async.whilst
* @category Control Flow
* @param {Function} test - asynchronous truth test to perform before each
* execution of `fn`. Invoked with (callback).
diff --git a/lib/eachLimit.js b/lib/eachLimit.js
index 825c47e..415e6e8 100644
--- a/lib/eachLimit.js
+++ b/lib/eachLimit.js
@@ -9,7 +9,7 @@ import withoutIndex from './internal/withoutIndex';
* @name eachLimit
* @static
* @memberOf async
- * @see `async.each`
+ * @see async.each
* @alias forEachLimit
* @category Collection
* @param {Array|Object} coll - A colleciton to iterate over.
diff --git a/lib/eachOfLimit.js b/lib/eachOfLimit.js
index fe0f088..753dbc0 100644
--- a/lib/eachOfLimit.js
+++ b/lib/eachOfLimit.js
@@ -9,7 +9,7 @@ import _eachOfLimit from './internal/eachOfLimit';
* @name eachOfLimit
* @static
* @memberOf async
- * @see `async.eachOf`
+ * @see async.eachOf
* @alias forEachOfLimit
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/eachOfSeries.js b/lib/eachOfSeries.js
index f4cd1a3..0718805 100644
--- a/lib/eachOfSeries.js
+++ b/lib/eachOfSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name eachOfSeries
* @static
* @memberOf async
- * @see `async.eachOf`
+ * @see async.eachOf
* @alias forEachOfSeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/eachSeries.js b/lib/eachSeries.js
index 7488955..470c34c 100644
--- a/lib/eachSeries.js
+++ b/lib/eachSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name eachSeries
* @static
* @memberOf async
- * @see `async.each`
+ * @see async.each
* @alias forEachSeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/everyLimit.js b/lib/everyLimit.js
index e9a690d..6470261 100644
--- a/lib/everyLimit.js
+++ b/lib/everyLimit.js
@@ -10,7 +10,7 @@ import notId from './internal/notId';
* @name everyLimit
* @static
* @memberOf async
- * @see `async.every`
+ * @see async.every
* @alias allLimit
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/everySeries.js b/lib/everySeries.js
index 636a088..aca6cec 100644
--- a/lib/everySeries.js
+++ b/lib/everySeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name everySeries
* @static
* @memberOf async
- * @see `async.every`
+ * @see async.every
* @alias allSeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/filterLimit.js b/lib/filterLimit.js
index 34be228..414ea4d 100644
--- a/lib/filterLimit.js
+++ b/lib/filterLimit.js
@@ -10,7 +10,7 @@ import doParallelLimit from './internal/doParallelLimit';
* @name filterLimit
* @static
* @memberOf async
- * @see `async.filter`
+ * @see async.filter
* @alias selectLimit
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/filterSeries.js b/lib/filterSeries.js
index 44c7542..97c3907 100644
--- a/lib/filterSeries.js
+++ b/lib/filterSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name filterSeries
* @static
* @memberOf async
- * @see `async.filter`
+ * @see async.filter
* @alias selectSeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/mapLimit.js b/lib/mapLimit.js
index 8512885..916b206 100644
--- a/lib/mapLimit.js
+++ b/lib/mapLimit.js
@@ -9,7 +9,7 @@ import map from './internal/map';
* @name mapLimit
* @static
* @memberOf async
- * @see `async.map`
+ * @see async.map
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {number} limit - The maximum number of async operations at a time.
diff --git a/lib/mapSeries.js b/lib/mapSeries.js
index d5a9af2..efa2818 100644
--- a/lib/mapSeries.js
+++ b/lib/mapSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name mapSeries
* @static
* @memberOf async
- * @see `async.map`
+ * @see async.map
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {Function} iteratee - A function to apply to each item in `coll`.
diff --git a/lib/parallel.js b/lib/parallel.js
index 8856fb1..eb910ce 100644
--- a/lib/parallel.js
+++ b/lib/parallel.js
@@ -19,7 +19,7 @@ import doLimit from './internal/doLimit';
* It is also possible to use an object instead of an array. Each property will
* be run as a function and the results will be passed to the final `callback`
* as an object instead of an array. This can be a more readable way of handling
- * results from [`parallel`](#parallel).
+ * results from {@link async.parallel}.
*
* @name parallel
* @static
diff --git a/lib/parallelLimit.js b/lib/parallelLimit.js
index 188624c..5b62150 100644
--- a/lib/parallelLimit.js
+++ b/lib/parallelLimit.js
@@ -10,7 +10,7 @@ import parallel from './internal/parallel';
* @name parallel
* @static
* @memberOf async
- * @see `async.parallel`
+ * @see async.parallel
* @category Control Flow
* @param {Array|Collection} tasks - A collection containing functions to run.
* Each function is passed a `callback(err, result)` which it must call on
diff --git a/lib/priorityQueue.js b/lib/priorityQueue.js
index 4c29596..0d8fd93 100644
--- a/lib/priorityQueue.js
+++ b/lib/priorityQueue.js
@@ -9,13 +9,13 @@ import setImmediate from './setImmediate';
import queue from './queue';
/**
- * The same as [`queue`](#queue) only tasks are assigned a priority and
+ * The same as {@link async.queue} only tasks are assigned a priority and
* completed in ascending priority order.
*
* @name priorityQueue
* @static
* @memberOf async
- * @see `async.queue`
+ * @see async.queue
* @category Control Flow
* @param {Function} worker - An asynchronous function for processing a queued
* task, which must call its `callback(err)` argument when finished, with an
diff --git a/lib/reduceRight.js b/lib/reduceRight.js
index c0135a8..033b9da 100644
--- a/lib/reduceRight.js
+++ b/lib/reduceRight.js
@@ -10,7 +10,7 @@ var slice = Array.prototype.slice;
* @name reduceRight
* @static
* @memberOf async
- * @see `async.reduce`
+ * @see async.reduce
* @alias foldr
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/reflectAll.js b/lib/reflectAll.js
index 2a0f197..b6884cc 100644
--- a/lib/reflectAll.js
+++ b/lib/reflectAll.js
@@ -8,7 +8,7 @@ import reflect from './reflect';
* @name reflectAll
* @static
* @memberOf async
- * @see `async.reflect`
+ * @see async.reflect
* @category Util
* @param {Array} tasks - The array of functions to wrap in `async.reflect`.
* @returns {Array} Returns an array of functions, each function wrapped in
diff --git a/lib/reject.js b/lib/reject.js
index b96321a..f7f6f10 100644
--- a/lib/reject.js
+++ b/lib/reject.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name reject
* @static
* @memberOf async
- * @see `async.filter`
+ * @see async.filter
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {Function} iteratee - A truth test to apply to each item in `coll`.
diff --git a/lib/rejectLimit.js b/lib/rejectLimit.js
index 67f34cb..9b3fbd3 100644
--- a/lib/rejectLimit.js
+++ b/lib/rejectLimit.js
@@ -10,7 +10,7 @@ import doParallelLimit from './internal/doParallelLimit';
* @name rejectLimit
* @static
* @memberOf async
- * @see `async.reject`
+ * @see async.reject
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {number} limit - The maximum number of async operations at a time.
diff --git a/lib/rejectSeries.js b/lib/rejectSeries.js
index 858f39a..1732eca 100644
--- a/lib/rejectSeries.js
+++ b/lib/rejectSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name rejectSeries
* @static
* @memberOf async
- * @see `async.reject`
+ * @see async.reject
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
* @param {Function} iteratee - A truth test to apply to each item in `coll`.
diff --git a/lib/retryable.js b/lib/retryable.js
index 58f56f4..b9c0fbb 100644
--- a/lib/retryable.js
+++ b/lib/retryable.js
@@ -8,7 +8,7 @@ import initialParams from './internal/initialParams';
* @name retryable
* @static
* @memberOf async
- * @see `async.retry`
+ * @see async.retry
* @category Control Flow
* @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional
* options, exactly the same as from `retry`
diff --git a/lib/seq.js b/lib/seq.js
index 35cde9f..ec1f10c 100644
--- a/lib/seq.js
+++ b/lib/seq.js
@@ -7,14 +7,14 @@ import reduce from './reduce';
/**
* Version of the compose function that is more natural to read. Each function
* consumes the return value of the previous function. It is the equivalent of
- * [`compose`](#compose) with the arguments reversed.
+ * {@link async.compose} with the arguments reversed.
*
* Each function is executed with the `this` binding of the composed function.
*
* @name seq
* @static
* @memberOf async
- * @see `async.compose`
+ * @see async.compose
* @category Control Flow
* @param {...Function} functions - the asynchronous functions to compose
* @example
diff --git a/lib/series.js b/lib/series.js
index b0cc6bf..17392cd 100644
--- a/lib/series.js
+++ b/lib/series.js
@@ -13,7 +13,7 @@ import eachOfSeries from './eachOfSeries';
* It is also possible to use an object instead of an array. Each property will
* be run as a function, and the results will be passed to the final `callback`
* as an object instead of an array. This can be a more readable way of handling
- * results from [`series`](#series).
+ * results from {@link async.series}.
*
* **Note** that while many implementations preserve the order of object
* properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)
diff --git a/lib/someLimit.js b/lib/someLimit.js
index a70e194..521c116 100644
--- a/lib/someLimit.js
+++ b/lib/someLimit.js
@@ -10,7 +10,7 @@ import identity from 'lodash/identity';
* @name someLimit
* @static
* @memberOf async
- * @see `async.some`
+ * @see async.some
* @alias anyLimit
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/someSeries.js b/lib/someSeries.js
index 5637556..41ca733 100644
--- a/lib/someSeries.js
+++ b/lib/someSeries.js
@@ -9,7 +9,7 @@ import doLimit from './internal/doLimit';
* @name someSeries
* @static
* @memberOf async
- * @see `async.some`
+ * @see async.some
* @alias anySeries
* @category Collection
* @param {Array|Object} coll - A collection to iterate over.
diff --git a/lib/times.js b/lib/times.js
index ef92779..8b4bb2b 100644
--- a/lib/times.js
+++ b/lib/times.js
@@ -5,17 +5,17 @@ import doLimit from './internal/doLimit';
/**
* Calls the `iteratee` function `n` times, and accumulates results in the same
- * manner you would use with [`map`](#map).
+ * manner you would use with {@link async.map}.
*
* @name times
* @static
* @memberOf async
- * @see `async.map`
+ * @see async.map
* @category Control Flow
* @param {number} n - The number of times to run the function.
* @param {Function} iteratee - The function to call `n` times. Invoked with the
* iteration index and a callback (n, next).
- * @param {Function} callback - see [`map`](#map).
+ * @param {Function} callback - see {@link async.map}.
* @example
*
* // Pretend this is some complicated async factory
diff --git a/lib/timesLimit.js b/lib/timesLimit.js
index abec4f8..a6ac311 100644
--- a/lib/timesLimit.js
+++ b/lib/timesLimit.js
@@ -4,19 +4,19 @@ import mapLimit from './mapLimit';
import range from 'lodash/_baseRange';
/**
-* The same as `times` but runs a maximum of `limit` async operations at a
+* The same as {@link times} but runs a maximum of `limit` async operations at a
* time.
*
* @name timesLimit
* @static
* @memberOf async
- * @see `async.times`
+ * @see async.times
* @category Control Flow
* @param {number} n - The number of times to run the function.
* @param {number} limit - The maximum number of async operations at a time.
* @param {Function} iteratee - The function to call `n` times. Invoked with the
* iteration index and a callback (n, next).
- * @param {Function} callback - see [`map`](#map).
+ * @param {Function} callback - see {@link async.map}.
*/
export default function timeLimit(count, limit, iteratee, cb) {
return mapLimit(range(0, count, 1), limit, iteratee, cb);
diff --git a/lib/timesSeries.js b/lib/timesSeries.js
index e68d1ed..a610b11 100644
--- a/lib/timesSeries.js
+++ b/lib/timesSeries.js
@@ -4,16 +4,16 @@ import timesLimit from './timesLimit';
import doLimit from './internal/doLimit';
/**
- * The same as `times` but runs only a single async operation at a time.
+ * The same as {@link async.times} but runs only a single async operation at a time.
*
* @name timesSeries
* @static
* @memberOf async
- * @see `async.times`
+ * @see async.times
* @category Control Flow
* @param {number} n - The number of times to run the function.
* @param {Function} iteratee - The function to call `n` times. Invoked with the
* iteration index and a callback (n, next).
- * @param {Function} callback - see [`map`](#map).
+ * @param {Function} callback - see {@link async.map}.
*/
export default doLimit(timesLimit, 1);
diff --git a/lib/unmemoize.js b/lib/unmemoize.js
index e7f0941..6b7a6f7 100644
--- a/lib/unmemoize.js
+++ b/lib/unmemoize.js
@@ -1,13 +1,13 @@
'use strict';
/**
- * Undoes a [`memoize`](#memoize)d function, reverting it to the original,
+ * Undoes a {@link async.memoize}d function, reverting it to the original,
* unmemoized form. Handy for testing.
*
* @name unmemoize
* @static
* @memberOf async
- * @see `async.memoize`
+ * @see async.memoize
* @category Util
* @param {Function} fn - the memoized function
*/
diff --git a/lib/until.js b/lib/until.js
index 0c5a1aa..f5e6efa 100644
--- a/lib/until.js
+++ b/lib/until.js
@@ -7,12 +7,12 @@ import whilst from './whilst';
* stopped, or an error occurs. `callback` will be passed an error and any
* arguments passed to the final `fn`'s callback.
*
- * The inverse of [`whilst`](#whilst).
+ * The inverse of {@link async.whilst}.
*
* @name until
* @static
* @memberOf async
- * @see `async.whilst`
+ * @see async.whilst
* @category Control Flow
* @param {Function} test - synchronous truth test to perform before each
* execution of `fn`. Invoked with ().