async.waterfallcallback的要点是什么?

在node.js模块asynchronous有一个方法称为瀑布https://github.com/caolan/async#waterfalltasks-callback

我很困惑,为什么有一个可选的callback说明

按顺序运行函数的任务数组

如果函数按顺序执行,那么添加callback似乎毫无意义,然后序列中的最后一个函数是最后一个函数。 是不是像读一个故事,然后说:“结束,结束”

它也像垃圾一样通过整个function链传递callback。

有什么实际的意义呢?

是; 如果其中一个数组函数失败并使用非空errcallback,则会跳过该数组的其余部分,并将执行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); });