Здравствуйте.
У меня есть intercept, который при появление запроса делает анимацию загрузки на странице.
Но, проблема в том, что когда например, на самой странице происходит ngOnDestroy, и происходит отписка от запроса, он отменяется (происходит вызов abort запроса), в результате чего, теперь я и не узнаю в intercept, что с этим запросом, то есть, я и не завершаю анимацию, и она так будет до бесконечности.
// component
private getUsersSubscription: Subscription;
ngOnInit() {
this.getUsersSubscription = this.gsService.getUsers().subscribe(response => {
// бла бла бла
});
}
ngOnDestroy() {
if(this.getUsersSubscription) this.getUsersSubscription.unsubscribe();
}
// intercept
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.visoad.startLoading();
return next.handle(req).pipe(
map((event: HttpEvent<any>) => {
this.visoad.completeLoading();
return event;
}),
catchError((err: any, caught) => {
if (err instanceof HttpErrorResponse) {
this.visoad.completeLoading();
return observableThrowError(err);
}
})
);
}