沈斌
2018-03-08 f320f1970e5d80a423f377fb3253628bd1e7f5bf
src/app/core/net/default.interceptor.ts
@@ -28,7 +28,7 @@
    private handleData(event: HttpResponse<any> | HttpErrorResponse): Observable<any> {
        // 可能会因为 `throw` 导出无法执行 `_HttpClient` 的 `end()` 操作
        this.injector.get(_HttpClient).end();
        // this.injector.get(_HttpClient).end();
        // 业务处理:一些通用操作
        switch (event.status) {
            case 200:
@@ -52,7 +52,12 @@
                this.goTo(`/${event.status}`);
                break;
        }
        return of(event);
        // 这里不抛出错误 httpclient 无法捕捉
        if (event instanceof HttpErrorResponse) {
            return ErrorObservable.create(event);
        } else {
            return of(event);
        }
    }
    intercept(req: HttpRequest<any>, next: HttpHandler):
@@ -68,7 +73,7 @@
            url: url
        });
        return next.handle(newReq).pipe(
                    mergeMap((event: any) => {
                    mergeMap((event: any) => {
                        // 允许统一对请求错误处理,这是因为一个请求若是业务上错误的情况下其HTTP请求的状态是200的情况下需要
                        if (event instanceof HttpResponse && event.status === 200)
                            return this.handleData(event);