| | |
| | | |
| | | 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: |
| | |
| | | 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): |
| | |
| | | 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); |