Monix Debounce Observable 的使用

Usage of Monix Debounce Observable

我正在尝试一些我可以在 Monix 的 Observable 上执行的操作。我遇到了这个去抖运算符,但无法理解它的行为:

Observable.interval(5.seconds).debounce(2.seconds)

上面这个只是每 5 秒发出一个 Long。

Observable.interval(2.seconds).debounce(5.seconds)

然而,这个根本不发出任何东西。那么 debounce 运算符的真正目的是什么,我可以在哪些情况下使用它?

术语去抖动 来自mechanical relays。您可以将其视为频率过滤器:o.debounce(5.seconds) 过滤掉任何发出频率超过每 5 秒一次的事件。

我使用它的一个例子是我希望快速连续地获得一批类似的事件,并且我对每个事件的反应都是相同的。通过去抖动,我可以通过使批次看起来只是一个事件来减少我需要做的工作量。

在像您的示例这样输入频率恒定的情况下,它没有用,因为唯一的可能性是它什么都不做或过滤掉所有内容。