我簡化了下面代碼中的場景,因爲我沒有空間來解釋我的用例,但基本上我從「趕上「的承諾塊。我怎樣才能得到從該catch塊傳遞的錯誤(在下面的例子中,我想從我用代碼包裝的「try/catch」的外部「catch」塊中報告錯誤):「catch new Error()」catch catch block context
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
reject();
}, 1000);
});
try {
p.then(function() {
console.log('promise resolved');
}).catch(function() {
throw new Error('I want to get out of this catch block!');
});
} catch (err) {
console.log('I want to report the error from here' + err.message);
}
'try..catch'是一個同步語句,你不能那樣做。你可以鏈接另一個'.catch()' – elclanrs
我已經回滾了你最近的編輯。你問了一個可理解的問題,得到了你接受的答案。只要有答案能夠真正解決問題中表達的問題,特別是一旦有*接受的答案,社區就不會看到明顯的改變。此外,新的問題是[這一個]的副本(http://stackoverflow.com/questions/26571328/how-do-i-properly-test-promises-with-mocha-and-chai)。只要回覆承諾:摩卡將拒絕作爲失敗。 – Louis
我的不好。我想我仍然需要一個答案,但後來我找到了答案。 – mags