gpt4 book ai didi

javascript - 如何组合 2 个或多个 observables 以便您知道哪个发出了?

转载 作者:行者123 更新时间:2023-12-05 00:37:57 25 4
gpt4 key购买 nike

假设你有 2 个 observables:

const obs1$: Observable<string[]> = this.getObs1$();
const obs2$: Observable<string[]> = this.getObs2$();
我想将这两个结合起来,以便在订阅(或 rxjs map )中我知道哪个发出了值。我不能使用 combineLatest 因为对于另一个可观察的我只是得到它在某个时候发出的最新值。

最佳答案

似乎没有一个纯粹的 RxJS 解决方案(但希望有人能证明我错了!)
您可以使用外部范围中的变量来跟踪发射的 observable 作为一种解决方法

let trigger: TriggerEnum;

const obs1$: Observable<string[]> = this.getObs1$()
.pipe(tap(() => trigger = TriggerEnum.One));
const obs2$: Observable<string[]> = this.getObs2$()
.pipe(tap(() => trigger = TriggerEnum.Two));;

combineLatest(....).subscribe(
// check trigger value
);

从文档中以防万一:请注意,在每个 observable 发出至少一个值之前, combineLatest 不会发出初始值

关于javascript - 如何组合 2 个或多个 observables 以便您知道哪个发出了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70903124/

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