Angular 4 - 拦截器处理网:: ERR_CONNECTION_REFUSED

时间:2017-11-16 12:23:42

标签: angular angular-http-interceptors

在下面的代码中,我尝试拦截我的http请求。每当我可以建立一个http连接时,我的拦截器都可以工作,但当我得到net::ERR_CONNECTION_REFUSED时,event变量不是HttpResponse的实例,所以我无法处理这种错误。这是我的代码:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    this.changeStatus(false);
    this.requests_count++;
    const my_req = req.clone({
        url: API_PATH + req.url
    });
    return next
        .handle(my_req)
        .do(event => {
            if (event instanceof HttpResponse) {
                this.requests_count--;
                if (!this.requests_count)
                    this.changeStatus(true);
            }
        });
}

如何检测拦截器错误,如net::ERR_CONNECTION_REFUSED

1 个答案:

答案 0 :(得分:1)

刚拿到它!

.do(
    event => {
        if (event instanceof HttpResponse) {
            this.requests_count--;
            if (!this.requests_count)
                this.changeStatus(true);
        }
    },
    error => {
        if (error instanceof HttpErrorResponse) {
            this.requests_count--;
            if (!this.requests_count)
                this.changeStatus(true);
        }
    }
);