1

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

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

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

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

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

4

1 回答 1

2

去抖动一词来自机械继电器。您可以将其视为频率过滤器:o.debounce(5.seconds)过滤掉任何发出频率高于每 5 秒一次的事件。

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

它在输入频率恒定的示例中没有用,因为唯一的可能性是它什么都不做或过滤掉所有东西。

于 2018-03-21T00:16:21.647 回答