我覺得自己有點瘋狂,但即使我定義了一個catch
,Angular似乎也會拋出對承諾的錯誤。它會向控制檯拋出錯誤,然後允許catch
運行。在提交promise之前角控日誌錯誤提示控制檯.catch
這裏是一個super-simple fiddle
測試代碼:
$q.when(1)
.then(function() {
throw new Error("test");
}).catch(function(error) {
console.log('error caught', error);
});
所得控制檯
(髒騙子!)
這裏是a fiddle showing what I expect to happen:所述catch
上升,並沒有其他錯誤記錄到控制檯。我沒有配置什麼東西,或者Angular是否實現了破壞的諾言規範?
這是正確的答案,但裝飾者優先於覆蓋整個服務。請參閱http://stackoverflow.com/questions/13595469/how-to-override-exceptionhandler-implementation – dnc253 2015-02-23 21:09:22
但不應該例外甚至沒有達到這一點?它不應該由'catch'處理嗎? – 2015-02-23 21:28:51
@DavidGrinberg'catch'發生在這種方法中的處理之後。這就是爲什麼它首先出現在控制檯中 – Tyrsius 2015-02-23 21:30:34