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>