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 秒一次的事件。
我使用它的一个例子是我希望快速连续地获得一批类似的事件,并且我对每个事件的反应都是相同的。通过去抖动,我可以通过使批次看起来只是一个事件来减少我需要做的工作量。
在像您的示例这样输入频率恒定的情况下,它没有用,因为唯一的可能性是它什么都不做或过滤掉所有内容。
我正在尝试一些我可以在 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 秒一次的事件。
我使用它的一个例子是我希望快速连续地获得一批类似的事件,并且我对每个事件的反应都是相同的。通过去抖动,我可以通过使批次看起来只是一个事件来减少我需要做的工作量。
在像您的示例这样输入频率恒定的情况下,它没有用,因为唯一的可能性是它什么都不做或过滤掉所有内容。