diff options
Diffstat (limited to 'lib/waterfall.js')
-rw-r--r-- | lib/waterfall.js | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/waterfall.js b/lib/waterfall.js index ceaf59d..f4c3ddc 100644 --- a/lib/waterfall.js +++ b/lib/waterfall.js @@ -1,6 +1,5 @@ import noop from './internal/noop'; import once from './internal/once'; -import slice from './internal/slice'; import onlyOnce from './internal/onlyOnce'; import wrapAsync from './internal/wrapAsync'; @@ -70,16 +69,15 @@ export default function(tasks, callback) { function nextTask(args) { var task = wrapAsync(tasks[taskIndex++]); - args.push(onlyOnce(next)); - task.apply(null, args); + task(...args, onlyOnce(next)); } - function next(err/*, ...args*/) { + function next(err, ...args) { if (err === false) return if (err || taskIndex === tasks.length) { - return callback.apply(null, arguments); + return callback(err, ...args); } - nextTask(slice(arguments, 1)); + nextTask(args); } nextTask([]); |