diff options
Diffstat (limited to 'lib/auto.js')
-rw-r--r-- | lib/auto.js | 13 |
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] } |