RxSwift限制的反跳触发使用其他时间标记触发定期事件

时间:2019-07-23 20:00:23

标签: swift rx-swift throttling debounce

我需要RxSwift中的防抖动功​​能,该功能在特定时间到期时会发出偶数信号,而与防抖动条件无关。

例如 设置:反跳= 0.2秒,周期性= 5秒。

情况1(需要)>如果用户连续按下一个按钮,即使他不停止连续轻拍,而只是在一定间隔后,我也希望收到一个。这样会产生具有定期限制的油门行为。

案例2(Works)>如果用户每0.5秒按下一次按钮,则防抖动限制就不会成为问题,并且用户每0.5秒就会收到一次事件。

第3种情况(Works)>用户什么都不按下,没有事件触发。

通过反跳提供案例2和3。实现案例1很难。


发表一些澄清>我的用例不是特殊的紧急按钮单击。我知道油门就足够了。用例更多是连续的数据流。如果数据连续处于防抖动限制(例如200ms),我希望有一种节气门行为,每2秒给出一次响应,但如果数据不是非常频繁地每0.5秒给出一次,我希望可观察到的UI立即发送数据响应更快。

2 个答案:

答案 0 :(得分:0)

在我看来,您是在描述throttle运算符,而不是denounce运算符。

通常,在处理按钮单击/触发时应使用油门,而在处理数据输入时应使用弹射。

答案 1 :(得分:0)

如果您要处理按钮操作,我相信使用RxSwift社区提供的Action库将是更好的选择。

这很好地处理了与按钮操作有关的场景