在我们的Angular代码库中,我们通常有如下处理的http请求:
return this.http
.get<Whatever>(url)
.toPromise()
.then(response => {
// handle successful response
})
.catch(e => {
// handle errors
});
请注意,在.then()
中,我们不提供回调来处理被拒绝的promise。
在某些情况下,这一承诺是否真的可能被拒绝,我们是否也应该安全地处理这些情况?我确信我对promises/angular之类的东西缺乏一些基本的理解,也许我们应该改用可观察性,而不是总是使用.toPromise((
如果http中有40x和50x响应,promise将被拒绝。如果http中有20x和30x的响应,则promise将得到解决。
then((之后的catch回调是拒绝回调。因此,如果http请求失败或出现错误,catch块内的代码将运行。
你是对的,http方法最好使用可观察性。