Ich habe diesen Code
method(): Observable<boolean> {
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
Aber wenn sessionId
'' ist, wird eine Ausnahme ausgelöst und der Fehler 401 in der Konsole protokolliert
und ich füge hinzu, wenn in dieser Methode:
method(): Observable<boolean> {
if (sessionId === '')
return false;
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
Aber jetzt bekomme ich einen Fehler:
Der Typ 'boolean' kann nicht dem Typ 'Observable' zugewiesen werden.
Wie kann ich das lösen?
Wenn ich Observable<boolean> | boolean
Hinzufüge, erhalte ich den Fehler
Die Eigenschaft 'map' existiert nicht für den Typ 'boolean | Beobachtbar '.
method(): Observable<boolean> {
if (sessionId === '')
return false; // <<< obviously not an observable
Dies sollte tun, was Sie wollen
method(): Observable<boolean> {
if (sessionId === '')
return Observable.of(false);
}
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
Zusätzlich zur akzeptierten Antwort würde ich den RxJs v6-Fall hinzufügen, in dem of
nicht auf Observable
existiert, sondern direkt aus rxjs
importiert werden könnte:
import { Observable, of as observableOf } from 'rxjs'; // since RxJs 6
method(): Observable<boolean> {
if (sessionId === '')
return observableOf(false);
}
// ...
}