async.waterfallcallback的要点是什么?
在node.js模块asynchronous有一个方法称为瀑布https://github.com/caolan/async#waterfalltasks-callback
我很困惑,为什么有一个可选的callback说明
按顺序运行函数的任务数组
如果函数按顺序执行,那么添加callback似乎毫无意义,然后序列中的最后一个函数是最后一个函数。 是不是像读一个故事,然后说:“结束,结束”
它也像垃圾一样通过整个function链传递callback。
有什么实际的意义呢?
是; 如果其中一个数组函数失败并使用非空err
callback,则会跳过该数组的其余部分,并将执行stream程短路到出错的第二个函数。 否则,调用第二个函数的结果。
当然,如果确保没有错误,并且数组完全执行,那么理论上第二个函数可以包含在原始数组中,而没有任何副作用。 然而,这打破了Node.JS中的asynchronous范式的共同性。
例如:
async.waterfall([ function(callback) { // Runs, of course callback(); }, function(callback) { // Also runs callback('error!'); }, function(callback) { // Never runs callback(); }], function(err) { console.log(err); });