Angular HttpClient 抛出错误状态代码

Angular HttpClient thrown error status codes

在 angular 文档中,声明对于“非成功 HTTP 状态”将抛出 HttpErrorResponse。 (See here)

哪些不成功状态/不成功状态范围会抛出错误? 是否存在即使 HTTP 状态为“不成功”,响应仍然有效的情况?

上下文:

在我的特定情况下,我有一个身份验证服务。 RxJs 管道 switchMap 中有一个条件,用于检查状态码是否在 200-399 范围内。这似乎是一个多余的支票。我想知道是否可以删除它。

this.http.get<UserDto>(ConstantUrlName.AUTHENTICATION_URL, {observe: 'response'}).pipe(switchMap((resp: HttpResponse<UserDto>) => {
    const user = resp &&
                resp.status >= 200 && resp.status < 400 &&
                resp.body;
    ....
}))

根据@jonrsharpe 的评论,我们可以在 angular repository:

中看到答案
  // ok determines whether the response will be transmitted on the event or
   // error channel. Unsuccessful status codes (not 2xx) will always be errors,
   // but a successful status code can still result in an error if the user
   // asked for JSON data and the body cannot be parsed as such.
   let ok = status >= 200 && status < 300;

可能应该添加到 Angular 的文档中。