Node.js 瀑布回调的意义是什么?
在node.js模块async中有一个名为瀑布的方法 我不明白为什么会有一个带有描述的可选回调 按系列运行函数的任务数组 添加回调似乎毫无意义,如果函数按顺序执行,那么序列中的最后一个函数就是最后一个。这不就像读一个故事然后说“结束,结束” 它还可以像垃圾一样将回调向下传递到整个函数链中Node.js 瀑布回调的意义是什么?,node.js,Node.js,在node.js模块async中有一个名为瀑布的方法 我不明白为什么会有一个带有描述的可选回调 按系列运行函数的任务数组 添加回调似乎毫无意义,如果函数按顺序执行,那么序列中的最后一个函数就是最后一个。这不就像读一个故事然后说“结束,结束” 它还可以像垃圾一样将回调向下传递到整个函数链中 这有什么实际意义吗?是的;如果其中一个数组函数失败,并使用非空的err进行回调,则跳过该数组的其余部分,执行流将与该错误的第二个函数短路。否则,将使用结果调用第二个函数 当然,如果保证没有错误,并且整个数组都执
这有什么实际意义吗?是的;如果其中一个数组函数失败,并使用非空的
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);
});
那么你会说它是用来调试的吗?一点也不;您应该始终检查程序中的错误。如果某个操作失败,例如文件读/写操作,那么您需要了解它—无论是在开发环境中还是在生产环境中。这就是错误回调的原因。