J'ai ce code
method(): Observable<boolean> {
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
Mais quand sessionId
est '', il lève une exception et la console enregistre une erreur 401
et j'ajoute si à l'intérieur de cette méthode:
method(): Observable<boolean> {
if (sessionId === '')
return false;
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
Mais maintenant je reçois une erreur:
Le type 'booléen' n'est pas assignable au type 'Observable'.
Comment puis-je résoudre ça?
Si j'ajoute Observable<boolean> | boolean
alors je reçois une erreur qui
La propriété 'map' n'existe pas sur le type 'boolean | Observable'.
method(): Observable<boolean> {
if (sessionId === '')
return false; // <<< obviously not an observable
Cela devrait faire ce que tu veux
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;
});
}
En plus de la réponse acceptée, je voudrais ajouter le cas v6 de RxJs où of
n'existe pas sur Observable
mais peut être importé directement de rxjs
:
import { Observable, of as observableOf } from 'rxjs'; // since RxJs 6
method(): Observable<boolean> {
if (sessionId === '')
return observableOf(false);
}
// ...
}