2016-11-21 73 views
0

在下面的代碼中(使用Bluebird庫),在出現錯誤的情況下,有沒有辦法確定哪個promise失敗?有沒有辦法知道`Promise.join`中哪個承諾失敗?

Promise.join(User.getByName(username), User.getByKey(key), (user1, user2) => { 
    //do operations 
}).catch((error) => { 
    //How to know which failed? 
}); 

這兩個承諾都會在拒絕時產生一般錯誤消息。

回答

1

你不能。如果你真的必須,你必須爲每個單獨實現一個錯誤處理程序。

Promise.join(User.getByName(username) 
    .catch(err => {throw new Error('error in getByName');}), 
    User.getByKey(key) 
    .catch(err => {throw new Error('error in getByKey');}), 
(user1, user2) => { 
    //do operations 
}).catch((error) => { 
    // error.message should now display origin of error 
}); 
+0

這就是我懷疑..謝謝 –

相關問題