RxSwift:立即接收事件,除非最后一个事件在某个时间间隔内被处理

RxSwift: Receive events immediately, unless the last event was processed within a certain interval

RxSwift / Reactivex 的新手。基本上我想做的是每当有事情发生时就调用服务器,但要确保调用频率不会超过每 10 秒一次。尽可能少一些。

例如,每当生成事件 ("needs update") 时,如果自上次调用以来已超过 10 秒,我想立即调用服务器。如果时间更短,我想在距离上一次通话还有 10 秒时拨打电话。在这 10 秒内产生了多少事件并不重要。

我查看了 throttle 的描述,但如果事件发生得非常快,它似乎会饿死,这是不可取的。

我怎样才能做到这一点?

RxSwiftExt 有一个提议的新运算符,我认为它可以为您提供所需的东西。但是,它还不存在。不过,您可能需要关注它。

https://github.com/RxSwiftCommunity/RxSwiftExt/issues/10