我想捕获在 javascript Promise 中发生的所有未处理的异常/拒绝。有没有一个很好的方法来捕捉它们而不.catch(..)
在 Promise 链的每一端添加一个?(如果忘记添加这个,错误会悄悄消失)。
Google Chrome 中的开发者控制台可以记录它们,我也喜欢在生产环境中记录它们。
对于普通的 javascript 异常,我使用该window.onerror
函数,但来自 Promise 的错误调用此函数。
例子:
window.onerror = function (e) {
alert("unhandled error: " + e);
};
var p = new Promise(function (resolve, reject) {
var nullObject = null;
// Raise a TypeError: Cannot read property 'forceNullError' of null
var x = nullObject.forceNullError();
resolve();
});
p.then(function () { alert('success'); });
JSFiddle:https ://jsfiddle.net/f7zwej6L/
*) 我注意到 WinJS 有.done(..)
我想要的方法,但 Native Promises 没有。