diff options
Diffstat (limited to 'node_modules/async/waterfall.js')
-rw-r--r-- | node_modules/async/waterfall.js | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/node_modules/async/waterfall.js b/node_modules/async/waterfall.js index feda782cf..d547d6b1e 100644 --- a/node_modules/async/waterfall.js +++ b/node_modules/async/waterfall.js @@ -11,23 +11,18 @@ exports.default = function (tasks, callback) { var taskIndex = 0; function nextTask(args) { - if (taskIndex === tasks.length) { - return callback.apply(null, [null].concat(args)); - } - - var taskCallback = (0, _onlyOnce2.default)((0, _rest2.default)(function (err, args) { - if (err) { - return callback.apply(null, [err].concat(args)); - } - nextTask(args); - })); - - args.push(taskCallback); - var task = (0, _wrapAsync2.default)(tasks[taskIndex++]); + args.push((0, _onlyOnce2.default)(next)); task.apply(null, args); } + function next(err /*, ...args*/) { + if (err || taskIndex === tasks.length) { + return callback.apply(null, arguments); + } + nextTask((0, _slice2.default)(arguments, 1)); + } + nextTask([]); }; @@ -43,9 +38,9 @@ var _once = require('./internal/once'); var _once2 = _interopRequireDefault(_once); -var _rest = require('./internal/rest'); +var _slice = require('./internal/slice'); -var _rest2 = _interopRequireDefault(_rest); +var _slice2 = _interopRequireDefault(_slice); var _onlyOnce = require('./internal/onlyOnce'); |