类型“布尔”是不能分配给输入“可观察”
问题描述:
我有一个代码类型“布尔”是不能分配给输入“可观察<boolean>”
method(): Observable<boolean> {
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
但当sessionId
是“”它抛出一个异常和控制台日志401错误
,我添加如果
method(): Observable<boolean> {
if (sessionId === '')
return false;
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
但现在我得到一个错误:
这个方法里面我该如何解决这个问题?
如果我添加Observable<boolean> | boolean
然后我收到错误
Property 'map' does not exist on type 'boolean | Observable'.
答
method(): Observable<boolean> {
if (sessionId === '')
return false; // <<< obviously not an observable
这应该做你想要
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;
});
}
答
检查方法是什么:
import 'rxjs/add/observable/of';
Observable.of();
你可以从中创建Observables领域,并与像这样解决问题:
method(): Observable<boolean> {
if (sessionId === '')
return Observable.of(false); // Now we got an Observable instance
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}
文档:的http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-of
可能的复制[类型“可观察”是不能分配给输入“可观察 |布尔'](http://*.com/questions/38299484/type-observable-is-not-assignable-to-type-observableboolean-boolean) –