【发布时间】:2019-04-19 02:21:11
【问题描述】:
export class AppHttpInterceptor implements HttpInterceptor {
private cache = new HttpCache();
private cacheURLList = [];
count = 0;
constructor(@Inject(AppBlockUiService) private appBlockUiService: AppBlockUiService,
@Inject(AppMessageService) private appMessageService: AppMessageService) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const started = Date.now();
this.blockUi();
return next.handle(serverReq)
.timeout(720000)
.do(
event => {
if (event instanceof HttpResponse) {
this.unBlockUi();
}
}, err => {
if (err instanceof HttpErrorResponse) {
// this.appBlockUiService.unblockUi();
}
this.unBlockUi();
}
);
}
}
所以我有一个 http 拦截器,用于在进行 http 调用时在 ui 上设置一个加载掩码,但我面临的问题是,由于使用取消订阅或超时而取消了 http 请求。不调用 unblock 方法。
有没有办法通过取消订阅和超时来处理取消的请求?
【问题讨论】:
标签: angular typescript rxjs httpclient angular-http-interceptors