summaryrefslogtreecommitdiff
path: root/lib/auto.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/auto.js')
-rw-r--r--lib/auto.js13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/auto.js b/lib/auto.js
index b06e3c5..ad92d74 100644
--- a/lib/auto.js
+++ b/lib/auto.js
@@ -1,8 +1,7 @@
-import noop from './internal/noop';
-
import once from './internal/once';
import onlyOnce from './internal/onlyOnce';
import wrapAsync from './internal/wrapAsync';
+import { promiseCallback, PROMISE_SYMBOL } from './internal/promiseCallback'
/**
* Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on
@@ -42,7 +41,7 @@ import wrapAsync from './internal/wrapAsync';
* pass an error to their callback. Results are always returned; however, if an
* error occurs, no further `tasks` will be performed, and the results object
* will only contain partial results. Invoked with (err, results).
- * @returns undefined
+ * @returns {Promise} a promise, if a callback is not passed
* @example
*
* async.auto({
@@ -83,13 +82,13 @@ import wrapAsync from './internal/wrapAsync';
* console.log('results = ', results);
* });
*/
-export default function (tasks, concurrency, callback) {
- if (typeof concurrency === 'function') {
+export default function auto(tasks, concurrency, callback) {
+ if (typeof concurrency !== 'number') {
// concurrency is optional, shift the args.
callback = concurrency;
concurrency = null;
}
- callback = once(callback || noop);
+ callback = once(callback || promiseCallback());
var numTasks = Object.keys(tasks).length;
if (!numTasks) {
return callback(null);
@@ -251,4 +250,6 @@ export default function (tasks, concurrency, callback) {
});
return result;
}
+
+ return callback[PROMISE_SYMBOL]
}