gpt4 book ai didi

angular - 当另一个 Observable(通知程序)发出时,从源 Observable 发出下一个值

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

我希望我的情况很常见,但找不到合适的。我想在 Angular2/RxJS 5 中实现的是:

source:   ---1--2--3--4---------5--------6-|-->
notifier: -o------------o-----o---o--o-o------>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
output: ---1----------2-----3---4--5---6-|-->

因此,我有一个发射值的源 Observable,我希望每个 Observable 仅在第二个 Observable(称为通知器)发射时才进入输出。这就像来自通知者的一个事件意味着“允许下一个通过”。

我试过 delayWhen,但我的主要问题是所有源值都在等待来自通知器的同一个事件,例如,如果 3 个源值“排队”并且通知器发射一次,所有 3 个值都通过,这不是我想要的。

最佳答案

答案是zip:

const valueStream = 
Rx.Observable.from([0, 1, 2, 3, 4, 5, 6]);

const notificationStream =
Rx.Observable.interval(1000).take(7);


Rx.Observable
.zip(valueStream, notificationStream, (val, notification) => val)
.subscribe(val => console.log(val));

工作示例 here .

当从两个流中产生一对时,这会产生一个值。因此,当 notificationStream 产生一个值时,该示例将从 valueStream 打印一个值。

关于angular - 当另一个 Observable(通知程序)发出时,从源 Observable 发出下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37541560/

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