何时会拒绝Angular的HttpClient.get()的承诺?

时间:2019-11-14 10:40:25

标签: angular promise angular-promise

在我们的Angular代码库中,我们通常以以下方式处理http请求:

return this.http
  .get<Whatever>(url)
  .toPromise()
  .then(response => {
     // handle successful response
  })
  .catch(e => {
     // handle errors
  });

请注意,在.then()中,我们没有提供回调来处理被拒绝的承诺。

在某些情况下实际上可能无法兑现这一承诺,我们是否应该安全并应对这些情况?我敢肯定,我对Promise / Angular /这里面的内容缺乏基本的了解,也许我们应该切换到使用可观察对象,而不是总是执行.toPromise()

1 个答案:

答案 0 :(得分:1)

如果http中的响应是40x和50x,则承诺将被拒绝。 如果http中的响应数是20x和30x,则承诺将得到解决。

then()之后的catch回调是拒绝回调。因此,如果http请求失败或出现错误,则将运行catch块中的代码。

您是对的,最好将可观察对象用于http方法。