我尝试了一些我可以在Monix的Observable上做的操作。我遇到了这个去抖运算符,无法理解它的行为:
Observable.interval(5.seconds).debounce(2.seconds)
上面这个只是每5秒发出一声。
Observable.interval(2.seconds).debounce(5.seconds)
然而,这个根本不会发出任何东西。那么debounce运算符的真正目的是什么?我可以在哪些情况下使用它?
答案 0 :(得分:2)
debounce 一词来自mechanical relays。您可以将其视为频率过滤器:o.debounce(5.seconds)
过滤掉每5秒钟发出一次的事件。
我使用它的一个例子是我希望快速连续获得一批类似事件的地方,我对每个事件的回应都是一样的。通过去抖,我可以通过使批处理看起来像只有一个事件来减少我需要做的工作量。
在输入频率恒定的情况下,它没有用,因为唯一的可能性是它什么都不做或者过滤掉所有内容。