Ich habe die Schnittstelle HttpInterceptor implementiert, um die ausgehenden Anfragen und die eingehenden Antworten abzufangen.Angular 4 HttpInterceptor: Lader ein- und ausblenden
Ich möchte ein Ladeprogramm anzeigen, wenn eine Anforderung erstellt wird, und dieses Ladeprogramm ausblenden, wenn eine Antwort empfangen wird.
Obwohl der folgende Code funktioniert, wenn eine HttpResponse erkannt wird, aber kein HTTP-Fehler erkannt wird (wenn der Antwortcode nicht 200 ist), wird der Ladevorgang daher nicht ausgeblendet.
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private loaderService: LoaderService) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.loaderService.show();
return next
.handle(req)
.do(event => {
//nothing is printed when a Http failure occurs
console.log('detecting event ', event);
if (event instanceof HttpResponse) {
console.log('detecting http response');
this.loaderService.hide();
}
});
}
}
Ich denke, Sie müssen dies überprüfen https://github.com/mpalourdio/ng-http-loader – Kuncevic