在node.js模块async中有一个名为waterfall https://github.com/caolan/async#waterfalltasks-callback
的方法我很困惑为什么有一个带有描述的可选回调
运行系列的任务数组
如果函数按顺序执行,那么添加回调似乎没有意义,那么序列中的最后一个函数就是最后一个。是不是喜欢读故事然后说“结束,结束”
它也像垃圾一样将回调传递到整个函数链。
有什么实际意义吗??
答案 0 :(得分:1)
是;如果其中一个数组函数失败并使用非空err
回调,那么将跳过该数组的其余部分,并且执行流程将错误发送到该第二个函数。否则,将使用结果调用第二个函数。
当然,如果确保没有错误,并且整个数组确实执行,那么理论上第二个函数可以包含在原始数组中而没有副作用。但是,这打破了Node.JS中异步范例的共性。
例如:
async.waterfall([
function(callback) { // Runs, of course
callback();
}, function(callback) { // Also runs
callback('error!');
}, function(callback) { // Never runs
callback();
}], function(err) {
console.log(err);
});