Http Interceptor : jouer une fonction à l'issue du chargement de la requete
Bonjour,
aujourd'hui je travaille sur mon interceptor, ce dernier sert uniquement a démarrer une barre de chargement lorsqu'une requête est lancée et j'aimerais également la stopper quand le résultat ou l'erreur me revient.
Pour le moment, j'arrive très bien a la désactiver mais seulement dans le cas d'une erreur, en plaçant ma fonction d’arrêt dans le catchError (Voir code ci-après).
Quel serait la méthode équivalente pour un retour sans erreur ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
return next.handle(request)
.pipe(
catchError((returnedError) => {
// Si erreur retournee, je desactive mon chargement
this.loadingService.desactivate();
if (returnedError.error instanceof ErrorEvent) {
this.errorMessage = `Error: ${returnedError.error.message}`;
} else if (returnedError instanceof HttpErrorResponse) {
this.errorMessage = `Error Status ${returnedError.status}: ${returnedError.error.error} - ${returnedError.error.message}`;
}
console.error(this.errorMessage ? this.errorMessage : returnedError);
return Observable.throw(returnedError);
})
); |
Comment exécuter une action a l'issue positive d'une requête ?
Si j'ajoute l'operateur tap dans mon pipe, etrangement la fonction est jouée avant le retour de la requete, cela ne fonctionne donc pas comme attendu:
Code:
1 2
|
tap(evt => {this.loadingService.desactivate();}) |
Merci par avance !