gpt4 book ai didi

system.reactive - Rx 如何合并可观察对象,并且仅在指定时间范围内提供了 onnext 时才触发

转载 作者:行者123 更新时间:2023-12-02 04:39:28 27 4
gpt4 key购买 nike

我有许多可观察的事件流,它们都提供带有时间戳的事件。我不关心单个事件,我需要知道它们在指定时间范围内何时全部触发。

例如:按钮一被点击(不在乎)单击了按钮二(不在乎)单击按钮一并在 5 秒内单击按钮二(我需要这个)

我试过“然后什么时候”,但我得到了旧事件,如果不在时间窗口内,我无法弄清楚如何过滤掉它们。

谢谢!

编辑:我试图创建一个大理石图来阐明我想要实现的目标......

我在顶部显示了一堆随机事件流。有些事件比其他事件更频繁地触发。我只想捕获在指定时间窗口内触发的事件组。在这个例子中,我使用了 3 秒的窗口。我想要的事件以深黑色突出显示,所有其他事件都应被忽略。我希望这有助于更好地解释问题。

enter image description here

最佳答案

顺序重要吗?如果是这样,处理“这个然后那个”的常用方法是使用 flatMapLatest。您可以通过将它们应用于传递给 flatMapLatest 的流来实现其他约束。考虑以下示例:

const fromClick = x => Rx.Observable.fromEvent(document.getElementById(x), 'click');

const a$ = fromClick('button1');
const b$ = fromClick('button2');

const sub = a$.flatMapLatest(() => b$.first().timeout(5000, Rx.Observable.never()))
.subscribe(() => console.log('condition met'));

这里我们说“对于按钮 1 的每次点击,开始监听按钮 2,然后返回第一次点击或不返回任何内容(如果我们达到超时)。这是一个工作示例:https://jsbin.com/zosipociti/edit?js,console,output

关于system.reactive - Rx 如何合并可观察对象,并且仅在指定时间范围内提供了 onnext 时才触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38580312/

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