Bluebird 3.4.1 for promises,Chrome 56,Babel 6.23.1
鉴于:
async login() {
try {
let response = await this.authservice.login('invalid-credentials');
} catch (error) {
}
}
上面的代码使用json对象模拟401响应错误,该对象具有从服务器返回的特定错误消息,该消息确实触发了catch语句 . 但是,我不想为每个catch语句处理错误,而是希望有一个全局错误处理程序 .
在非异步函数中,我使用 window.onerror
事件,它按预期工作 . 但是,这不适用于异步功能 .
我还添加了活动
window.addEventListener('unhandledrejection')
window.addEventListener('rejectionhandled')
这些事件不会触发上述情况(它们会触发其他情况) . 相反,bluebird返回“警告承诺被拒绝且出现非错误:[object Response]” .
this.authservice.login
正在使用一个使用标准promise语法和异步函数的库 .
如果我在catch语句中抛出一个新错误,我可以得到错误最终冒泡到unhandledrejection事件 . 但是上面的函数是从另一个函数调用的,我必须在两个函数中抛出一个错误,以便触发全局的未处理的反射 .
总之,我试图为所有async / awaits和promises创建一个全局错误处理程序 .