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创建一个全局错误处理程序 .