2015-09-14 50 views
2

我正在使用瀑布方法的異步模塊。如何在node.js的異步中停止對錯誤執行瀑布?

async.waterfall([ 
     function(callback) { 
      ... 
      callback(err); 
     }, 
     function(result, callback) { 
      console.log("This function should not be executed"); 
     } 
    ], 
    function(err) { 
     if (err) { 
      next(err); 
      return; 
     } 
    } 
); 

但是第二個函數總是執行。如何預防它?

+1

它不應該。確保'err'是一個真值。 – Bergi

+0

確保在提早調用回調時始終返回,否則在很多情況下會導致多次回調和不可預知的行爲 - caolan.github.io/async – gaborp

回答

5

嘗試添加return

async.waterfall([ 
     function(callback) { 
      ... 
      return callback(err); //note return here 
     }, 
     function(result, callback) { 
      console.log("This function should not be executed"); 
     } 
    ], 
    function(err) { 
     if (err) { 
      next(err); 
      return; 
     } 
    } 
); 
+0

非常感謝!它正在工作。 – Sergiy