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 ?
Comment exécuter une action a l'issue positive d'une requête ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }) );
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:
Merci par avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tap(evt => {this.loadingService.desactivate();})
Partager