2014-02-28 30 views
0

避免node.js回調地獄,我使用async.js來組織我的代碼。它在最後使用一個回調函數來捕獲所有的錯誤。是否有可能找出它拋出異常的地方。如何爲async.waterfall創建自定義錯誤消息?

在下面的例子中,數組中有3個函數,我想知道它失敗的位置,所以我可以創建一個自定義的錯誤消息。

async.waterfall([ 
    function(callback){ 
     callback(null, 'one', 'two'); 
    }, 
    function(arg1, arg2, callback){ 
     callback(null, 'three'); 
    }, 
    function(arg1, callback){ 
     // arg1 now equals 'three' 
     callback(null, 'done'); 
    } 
], function (err, result) { 
    // result now equals 'done' 
     console.log("error:" + err); 
}); 

回答

2

在最後的回調,err將被傳遞作爲第一個參數,在您的waterfall功能callback調用的第一個非空誤差值。所以只要你讓錯誤值傳遞給你的三個函數callback不同,你可以區分它們。

但是,您提到的例外情況根本沒有考慮到這一點,因爲這些例外只會導致程序崩潰。我不確定你是否意味着實際的例外,或者一般只是將錯誤稱爲例外。