gpt4 book ai didi

rxjs - 每次其中一个发出 zip 2 observable

转载 作者:行者123 更新时间:2023-12-04 08:02:20 25 4
gpt4 key购买 nike

我有以下

const timer1 = interval(1000).pipe(take(10));
const timer2 = interval(2000).pipe(take(6));
const merged = merge(timer1, timer2);
merged.subscribe(x => console.log(x));
现在这只会提供最新发出的 observable 的值。
我希望这样,当一个发出时,我会得到新值,而另一个则是最新值。
我尝试使用 zip但它不会使用最新的。检查下面的屏幕截图以了解我希望拥有的缺失值。我怎样才能做到这一点?
Join 会起作用,但如果同一个 observable 在另一个 observable 发出值之前发出两次,则 join 不会发出。
enter image description here

最佳答案

您正在寻找 combineLatest .combineLatest每当源 observables 发射时都会发射。注意:在每个 observable 至少发射一次之前,它不会第一次发射。
combineLatest marbles
因此,对于您的示例,它可能如下所示( StackBlitz ):

const timer1 = interval(1000).pipe(take(10));
const timer2 = interval(2000).pipe(take(6));
const merged = combineLatest([timer1, timer2]);

merged.subscribe(([one, two]) => console.log(`${one}-${two}`));

关于rxjs - 每次其中一个发出 zip 2 observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66395329/

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