0
votes

Comment retourner l'objet de réponse pour une mauvaise demande de service angulaire au composant

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);
      }
    );
  }


1 commentaires

Pourquoi ne pas déplacer votre code de traitement d'erreur dans la fonction d'abonnement? Comme err => this.moovapiserservice.handleError (err)


3 Réponses :


0
votes

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 . Exemple: xxx


0 commentaires

0
votes

je mettrais guidonerror () comme public et faire xxx


1 commentaires

Merci! J'ai mappé ma réponse d'erreur comme ceci - this.response = err.Error



0
votes

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);
            });
    }


1 commentaires

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);})