【发布时间】:2018-06-27 06:44:07
【问题描述】:
这在我的拦截器中
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req)
.catch(err => {
if (err instanceof HttpErrorResponse) {
this.errorControl(req, err.status);
return Observable.throw(err);
}
});
}
我需要在我的组件中捕获从服务器发送的错误,因为我必须采取相应的行动(404:返回上一个 url,400:显示消息等)。当我在订阅 observable 时发现错误时,我得到了这个
"You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable."
但我需要一个 HttpErrorResponse 及其状态、状态文本等。
删除拦截器解决了我的问题,但我需要它来处理所有会话内容。
【问题讨论】:
-
你能发布你的
errorControl(req, err.status)函数的内容吗? -
你能显示它实际导致错误的代码吗?您如何发现订阅中的错误
标签: angular error-handling observable interceptor