summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2016-03-07 23:24:15 -0800
committerAlexander Early <alexander.early@gmail.com>2016-03-07 23:24:15 -0800
commit32993350d03ec9a566ae91e5c279510282e15d17 (patch)
tree14547a4c635fd89bade0efc9d30ee86017eb89bd
parentd2fe2b323820f4fbce268ade71435d58088118bb (diff)
downloadasync-waterfall-multiple-callback-defense.tar.gz
-rw-r--r--lib/waterfall.js9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/waterfall.js b/lib/waterfall.js
index e25f629..a31b3b4 100644
--- a/lib/waterfall.js
+++ b/lib/waterfall.js
@@ -15,21 +15,20 @@ export default function(tasks, cb) {
function nextTask(args) {
if (taskIndex === tasks.length) {
- return cb.apply(null, [null].concat(args));
+ return cb(null, ...args);
}
- var task = tasks[taskIndex];
- taskIndex++;
var taskCallback = onlyOnce(rest(function(err, args) {
if (err) {
- return cb.apply(null, [err].concat(args));
+ return cb(err, ...args);
}
nextTask(args);
}));
args.push(taskCallback);
- task.apply(null, args);
+ var task = tasks[taskIndex++];
+ task(...args);
}
nextTask([]);