我正在使用rxjs 6
我的代码中有两个可观察对象
import { combineLatest } from 'rxjs/operators';
loading$: Observable<boolean>;
loaded$: Observable<boolean>;
观察结果不是来自http
请求,而是来自store
我需要根据这个逻辑将序列组合/转换为一个单一的可观察值:
如果序列true
,true
或false
,false
- 需要返回新的可观察true
,否则需要返回false
我尝试使用combineLatest
来实现这一目标:
combineLatest(
this.loaded$, this.loading$,
(val1, val2) => Number(val1) + Number(val2) === 1
)
但问题是我的combineLatest
会返回'OperatorFunction<>
而不是Observable<>
,所以我无法订阅。
你有任何想法如何解决这个问题?或者如果有其他方法可以采取?
更新:
似乎这就是我的问题import { combineLatest } from 'rxjs';
的答案
目前正在测试
答案 0 :(得分:8)
使用RxJS 5.5时,最有可能的原因是你使用combineLatest
中的rxjs/operators
,而你想将它用作Observable“创建方法”,这意味着你需要使用rxjs/observable/combineLatest
。
我的意思是你需要使用它:
import { combineLatest } from 'rxjs/observable/combineLatest';
......而不是:
import { combineLatest } from 'rxjs/operators';
编辑:由于您提到您正在使用RxJS 6,因此可以从rxjs
导入静态变体。
import { combineLatest } from 'rxjs';
如果您正在寻找combineLatest
运算符,则必须按以下方式导入:
import { combineLatest } from 'rxjs/operators';
答案 1 :(得分:1)
我猜我只需要这个
.