javascript - 在 Angular 中,使用 async/await 时如何处理 promise 拒绝

标签 javascript angularjs async-await ecmascript-2017

在 Angular 中,如果我使用 Promise,代码将是

let promise = this.$resource('www.example.com.au/request.json').get().$promise
promise.then(data => {
    //promise solved
}, () => {
   //promise rejected
})

当谈到异步/等待时 代码变为

async getData() {
    let data = await this.$resource('www.example.com.au/request.json').get().$promise
    this.localData = {...data}
}

但这只是为了解决 promise 。如果 promise 被拒绝,我该怎么办?谢谢

最佳答案

如果 Promise 被拒绝,将会抛出错误。使用try...catch:

async getData() {
  try {
    let data = await this.$resource('www.example.com.au/request.json').get().$promise
    this.localData = {...data};
  } catch(error) {
    // promise rejected
  }
}

关于javascript - 在 Angular 中,使用 async/await 时如何处理 promise 拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028702/

相关文章:

c# - 如何在 C++/Cli 中使用可等待对象

javascript - 使用 ng-class 有条件地添加 CSS3 动画

javascript - 在 Javascript 中从时间获取子午线

javascript - 为什么正则表达式构造函数需要双重转义?

javascript - 在 AngularJS 上使用 Typescript 的指令中 Controller 的范围

javascript - 使用 AngularJS 实现本地存储

angularjs - 如何从指令部分调用 ng-click?

javascript - 将 Try/Catch 与 Promise.all 一起使用

javascript - async await 在浏览器中真的是非阻塞的吗?

javascript - 通过id更新object中的MongoDB对象