gpt4 book ai didi

angular - 为什么 `combineLatest` 返回 OperatorFunction<{}, number>

转载 作者:太空狗 更新时间:2023-10-29 17:31:57 26 4
gpt4 key购买 nike

我正在使用 RxJS 6我的代码中有两个 observable

import { combineLatest } from 'rxjs/operators';

loading$: Observable<boolean>;
loaded$: Observable<boolean>;

观察值不是来自 http请求但来自 store

我需要根据这个逻辑将序列组合/转换成一个单一的可观察值:
如果序列true , truefalse , false - 需要返回新的 observable true否则需要返回false

我尝试使用 combineLatest实现这一目标:

combineLatest(
this.loaded$, this.loading$,
(val1, val2) => Number(val1) + Number(val2) === 1
)

但问题是我的 combineLatest返回 'OperatorFunction<>而不是 Observable<>所以我不能订阅。你对如何解决这个问题有什么想法吗?或者是否有其他方法可以采用?

更新:
好像那是我问题的答案import { combineLatest } from 'RxJS';
目前正在测试

最佳答案

对于 RxJS 5.5,这很可能是因为您正在使用 rxjs/operators 中的 combineLatest 而您想将其用作 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';

关于angular - 为什么 `combineLatest` 返回 OperatorFunction<{}, number>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50344761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com