是否有类似 async.waterfall 的东西但有错误?

Is there something similar to async.waterfall but for errors?

我有一个脚本,只有在前一个函数失败时才需要执行下一个函数。

有这样的吗?我不想链接所有函数,因为很难调试。

我在这种情况下使用的技巧是 return "done" 在回调的第一个参数中:

async.waterfall([
  function(callback){
    if (doneWithWaterfall) {
      return callback('done', 1);  // optional 2nd argument
    }
    callback(null);
  },
  function(callback){
    if (doneWithWaterfall) {
      return callback('done', 2);   // optional 2nd argument
    }
    callback(null);
  }
], function(err, result) { 
  if (!err || err === 'done') {
    console.log(result); // result is the 2nd argument of callback if returned
  } else {
    console.log(err);
  }
});