Angular 的 HttpClient.get() 的承诺何时会被拒绝?
When will the promise from Angular's HttpClient.get() be rejected?
在我们的 Angular 代码库中,我们通常这样处理 http 请求:
return this.http
.get<Whatever>(url)
.toPromise()
.then(response => {
// handle successful response
})
.catch(e => {
// handle errors
});
请注意,在 .then()
中,我们不提供回调来处理被拒绝的承诺。
在某些情况下这个承诺实际上可能会被拒绝,我们是否应该安全地处理这些情况?我确定我在这里缺乏对 promises/angular/whatever 的一些基本理解,也许我们应该改用可观察对象而不是总是做 .toPromise()
如果 http 中有 40x 和 50x 响应,承诺将被拒绝。
如果在 http 中有 20x 和 30x 响应,承诺将被解决。
then()之后的catch回调是rejection回调。因此,如果 http 请求失败或出错,catch 块中的代码将为 运行.
你是对的,http方法最好使用observables。
在我们的 Angular 代码库中,我们通常这样处理 http 请求:
return this.http
.get<Whatever>(url)
.toPromise()
.then(response => {
// handle successful response
})
.catch(e => {
// handle errors
});
请注意,在 .then()
中,我们不提供回调来处理被拒绝的承诺。
在某些情况下这个承诺实际上可能会被拒绝,我们是否应该安全地处理这些情况?我确定我在这里缺乏对 promises/angular/whatever 的一些基本理解,也许我们应该改用可观察对象而不是总是做 .toPromise()
如果 http 中有 40x 和 50x 响应,承诺将被拒绝。 如果在 http 中有 20x 和 30x 响应,承诺将被解决。
then()之后的catch回调是rejection回调。因此,如果 http 请求失败或出错,catch 块中的代码将为 运行.
你是对的,http方法最好使用observables。