gpt4 book ai didi

rxjs - 如何在 RXJS 中发出不早于指定超时的事件?

转载 作者:行者123 更新时间:2023-12-01 22:57:18 24 4
gpt4 key购买 nike

我想在视觉效果消失后发出事件。视觉效果持续5秒。这段代码有效,但我认为有更好的解决方案:

Observable.combineLatest(observable1, Observable.of('hold').delay(5000)).subscribe(() => {
alert('ok');
});

当 observable1 被触发时,该事件应该被触发,但不能早于 5 秒。 (如果 observable1 在 6 秒后触发,则此事件应在 6 秒后触发。如果 observable1 在 3 秒后触发,则此事件应在 5 秒后触发)

最佳答案

您所描述的看起来像您需要的withLatestFrom仅当源发出时才发出:

Observable
.of('hold')
.delay(5000)
.withLatestFrom(observable1, (...values) => values[1])
.subscribe(console.log);

只有延迟的 'hold' 字符串控制此运算符何时从 Observable1 发出最新值。在其源和 Observable1 发出之前,该运算符不会发出任何内容,因此即使 Observable1 在例如之后发出。 6s 您将在 6s 后收到第一个项目。如果情况相反,并且 Observable1 提前发出,它将等待 'hold' 字符串。

如果您对 Observable1 中的值不感兴趣,您可以忽略投影函数并仅使用:

...
.withLatestFrom(observable1)
...

关于rxjs - 如何在 RXJS 中发出不早于指定超时的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826790/

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