ich habe folgende Login-Funktion:Angular 2 beobachtbare bricht, wenn Callback-Logik hinzugefügt
login(payload: Object) {
return this.http.post(this.apiUrl, payload)
.map(res => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
Ich nenne es wie folgt auf Login und es funktioniert gut:
this.sk_auth.login(this.loginCreds).subscribe((response)=>{
console.log(response);
//here we can do anything we want with the response.
if(response.success){
sessionStorage.setItem('token', response.token);
sessionStorage.setItem('user', JSON.stringify(response.user));
});
Das Problem ist, dass ich etwas tun, bevor ich die Antwort zurückgebe. Ich versuchte dies:
login(payload: Object) {
return this.http.post(this.apiUrl, payload)
.map(res => res.json())
.map((res)=>{
//do some stuff...
})
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
Wenn ich die zweite Karte hinzufügen die beobachtbare Reaktion nicht mehr auf die Zeichnung auf der Login-Komponente zurückgegeben wird. Danke im Voraus.
Sind Sie sicher, dass Sie eine Rückgabeanweisung in der zweiten Karte haben? Da Sie die geschweifte Klammernnotation verwenden, gibt es keine automatische Rückkehr von dieser Funktion wie Ihre vorherige einfachere. – FraserES