Ich arbeite an einer Angular-App, in der ich wie folgt einen Restanruf über HTTP tätige:
login(email, password) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
let body = `identity=${email}&password=${password}`;
return this.http.post(`${this._configService.getBaseUrl()}/login`, body, options)
.map((res: any) => {
let response: any = JSON.parse(res._body);
if (response.success == 0) {
Observable.throw(response); // not working
} else if (response.success == 1) {
console.log('success');
localStorage.setItem('auth_token', 'authenticated');
this.loggedIn = true;
return response;
}
});
}
Grundsätzlich möchte ich, dass meine Komponente in meinem Abonnementaufruf eine Antwort und einen Fehler erhält, dh
this._authenticateService.login(this.loginObj['identity'],this.loginObj['password']).subscribe(
(success)=>{
this.credentialsError=null;
this.loginObj={};
this._router.navigate(['dashboard']);
},
(error)=>{
console.log(error);
this.credentialsError=error;
}
);
aber meine API gibt immer Erfolg zurück, wie es so definiert ist.
Wie kann ich eine Fehlermeldung ausgeben, wenn response.success == 0
damit innerhalb des Fehlerarguments meines Abonnement-Callbacks darauf zugegriffen wird?
Was ist der Statuscode, den Sie bekommen, ich meine, es kann auch anders als 0 sein?
– Jorawar Singh
9. November 2016 um 16:58 Uhr
@MrJSingh, der Typ, der die API entworfen hat, hat nur Erfolg als 0 oder 1 zurückgegeben, um die Antwort zu validieren. Also war meine Operation erfolgreich, es wird Erfolg = 1 oder Erfolg = 0 zurückgegeben. Jetzt möchte ich einen Fehler auslösen, wenn der Erfolg erfolgreich ist 0.ist das möglich?
– Bhushan Gadekar
9. November 2016 um 17:02 Uhr
Lassen Sie mich meine App ausprobieren, technisch sollte es möglich sein.
– Jorawar Singh
9. November 2016 um 17:03 Uhr
versuchen Sie diese Rückkehr Observable.throw (Antwort);
– Jorawar Singh
9. November 2016 um 17:12 Uhr
Sie können dies versuchen: Es ist ein ähnlicher Fall stackoverflow.com/a/55286461/8342681
– Javier Solis Guzman
21. März 2019 um 17:57 Uhr