在我们的Angular代码库中,我们通常以以下方式处理http请求:
return this.http
.get<Whatever>(url)
.toPromise()
.then(response => {
// handle successful response
})
.catch(e => {
// handle errors
});
请注意,在.then()
中,我们没有提供回调来处理被拒绝的承诺。
在某些情况下实际上可能无法兑现这一承诺,我们是否应该安全并应对这些情况?我敢肯定,我对Promise / Angular /这里面的内容缺乏基本的了解,也许我们应该切换到使用可观察对象,而不是总是执行.toPromise()
答案 0 :(得分:1)
如果http中的响应是40x和50x,则承诺将被拒绝。 如果http中的响应数是20x和30x,则承诺将得到解决。
then()之后的catch回调是拒绝回调。因此,如果http请求失败或出现错误,则将运行catch块中的代码。
您是对的,最好将可观察对象用于http方法。