我有密码
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;
});
}但现在我发现了一个错误:
类型'boolean‘是不能分配的类型’可观察‘。
我该怎么解决呢?
如果我添加Observable<boolean> | boolean,那么我得到的错误是
属性“map”不存在于“布尔值可观测”类型上。
发布于 2017-02-11 16:39:26
method(): Observable<boolean> {
if (sessionId === '')
return false; // <<< obviously not an observable这应该能做你想做的
import { of, Observable } from 'rxjs';
method(): Observable<boolean> {
if (sessionId === '')
return of(false);
}
return this._http.get('sessionId=' + sessionId).map(res=> {
if (res.status === "success") {
return true;
}
return false;
});
}发布于 2018-06-11 18:03:41
除了接受的答案之外,我还要添加RxJs v6,在这种情况下,Observable上不存在of,但是可以直接从rxjs导入
import { Observable, of as observableOf } from 'rxjs'; // since RxJs 6
method(): Observable<boolean> {
if (sessionId === '')
return observableOf(false);
}
// ...
}发布于 2021-08-29 16:26:49
对于具有严格类型设置的角度用户,所有其他类型似乎都正常(不是我测试了所有类型.但是number和自定义接口(例如,不需要添加类型声明)
使用布尔类型,这将导致错误:
_isBoolean$: BehaviorSubject<boolean> = new BehaviorSubject(false);改为:
_isBoolean$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);这也管用..。
_isBoolean$ = new BehaviorSubject<boolean>(false);
_isBoolean$ = new BehaviorSubject(false);但是,很清楚,它是removes...the...strict...typing的;)
https://stackoverflow.com/questions/42178383
复制相似问题