2017-11-24 2 views
0

Ich entwickle eine IONIC 3 App, die Asp.NET Web API-Dienste verwendet, für die Authentifizierung Token-basierte Authentifizierung verwendet, also wenn der Benutzer gültige Anmeldeinformationen eingibt Er erhält ein Token zurück, das in FireBase db gespeichert wird. Wenn er falsche Anmeldedaten eingibt, erhält er einen Toast, der einen einfachen Fehlertext anzeigt.Toast anzeigen, wenn Observable einen Fehler in IONIC 3 zurückgibt ASP.NET WEB API

Ich bekomme die Antwort erfolgreich, egal was der Token oder der Fehler von der Observable, aber ich möchte einen Toast im Falle von schlechten Anmeldeinformationen zeigen.

Ich bin neu in Rxjs und reaktive Programmierung. Also meine Frage ist wie Sie den Code Kette den Toast auf die abonnieren Methode in dem folgenden Code zeigt:

logUser(){ 
     this.loginService.login(this.loginModel.userName,this.loginModel.password,this.loginModel.grant_type) 
     .subscribe(token => {this.Token= token , 
          console.log(this.Token.access_token)}, 
           error => this.errorMessage = <any>error);  
     //<any>this.toast.create(this.toastOptions).present()    
     } 

Antwort

0

ich Ihren Code in einer anderen Art und Weise eingekerbt haben Sie zu zeigen, wo Sie den Toast Nachricht öffnen sollte für beide Szenarien (Erfolg und Fehler):

logUser(){ 
    this.loginService.login(this.loginModel.userName,this.loginModel.password,this.loginModel.grant_type) 
     .subscribe(
      token => { 
       this.Token = token; 
       console.log(this.Token.access_token); 

       // Here you can show a toast when the user was able to get the token! 
       // ... 
      }, 
      error => { 
       this.errorMessage = (<any>error); 

       // Here you can show a toast when an error has ocurred! 
       // ... 

      });  
} 

Also im Grunde seit dem subscribe ist async, dann würden Sie müssen den gesamten Code setzen, die den Erfolg Szenario innerhalb des token => { ... } Rückruf behandelt, und den gesamten Code, die Griffe ein Fehler im error => { ...} Callback.