如果响应的map
不属于Observable
系列,则会从HTTP
请求为返回的status code
执行2xx
控件到达catch
块本身,甚至不会成为map
的成功回调。这是它应该如何工作?我在哪里可以找到相关的代码?
我是否正确地说答案中的status code
使其转到catch
(除非很明显,我的地图本身没有错误)?
答案 0 :(得分:2)
是。如果收到不成功的状态代码,Angular的HTTP实现会检查状态代码并从observable发出错误。
请参阅http_utils.ts
中的isSuccess
方法:
export const isSuccess = (status: number): boolean => (status >= 200 && status < 300);
xhr_backend.ts
中的XHRConnection
实施:
const response = new Response(responseOptions);
response.ok = isSuccess(status);
if (response.ok) {
responseObserver.next(response);
// TODO(gdi2290): defer complete if array buffer until done
responseObserver.complete();
return;
}
responseObserver.error(response);