API renvoie ci-dessous Type de réponse -
loginUser(signinForm: any): void{ let user: User = { email: signinForm.email, password: signinForm.password }; console.log('[LOGIN-COMPONENT] User details ', user); this._moovApiService.singIn(user) .subscribe((response: ResponseObject) => this.responseObject = response, err => { console.log('[LOGIN-COMPONENT] ', err); }, () => { console.log('[LOGIN-COMPONENT] Response from service ', this.responseObject); } ); }
3 Réponses :
Si vous voulez que tous les codes d'état HTTP soient traités comme des données et non comme une erreur, vous devez renvoyer une fausse observable à partir de votre guidonError code>. Exemple:
je mettrais guidonerror () code> comme
public code> et faire
Merci! J'ai mappé ma réponse d'erreur comme ceci - this.response = err.Error
Erreur de capture avant l'abonnement.
loginUser(signinForm: any): void { let user: User = { email: signinForm.email, password: signinForm.password }; console.log('[LOGIN-COMPONENT] User details ', user); this._moovApiService.singIn(user).pipe(catchError(err => { console.log('[LOGIN-COMPONENT] ', err); })) .subscribe((response: ResponseObject) => { this.responseObject = response; console.log('[LOGIN-COMPONENT] Response from service ', this.responseObject); }); }
CatchError ((erreur: httperroresponse) => {transmettre errorormessage = ''; si (error.error instance of errorvent) {// erreur côté client erroressage = 'erreur: $ {error.error.message}';} ';} else {// erreur d'erreur côté serveur errorormageage = 'Code d'erreur: $ {error.status} \ n \ nmessage: $ {error.message}';} window.alert (erroressage); retournez le throwlorror (erroressage);}) code);}) >
Pourquoi ne pas déplacer votre code de traitement d'erreur dans la fonction d'abonnement? Comme
err => this.moovapiserservice.handleError (err) code>