【问题标题】:RxSwift: Receive events immediately, unless the last event was processed within a certain intervalRxSwift:立即接收事件,除非最后一个事件在一定的时间间隔内被处理
【发布时间】:2016-05-24 14:10:33
【问题描述】:

RxSwift / Reactivex 的新手。基本上我要做的是在发生任何事情时进行服务器调用,但要确保它的频率不超过每 10 秒一次。如果可能,减少频率。

例如,每当生成事件(“需要更新”)时,如果自上次调用以来已超过 10 秒,我想立即调用服务器。如果时间过去了,我想在最后一次通话后的 10 秒内拨打电话。在这 10 秒内生成了多少事件并不重要。

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

我怎样才能做到这一点?

【问题讨论】:

  • 您能详细说明“饿死”是什么意思吗?
  • 这意味着如果事件发生得足够频繁,事件将不会被传递。
  • 你在哪里看到这个描述?我没有在文档中看到这一点,我自己也没有经历过。你能链接到它并粘贴相关的文字吗?
  • 啊,我明白你在说什么“饿死”了。我已经添加了一个答案。答案可能在将来会有所帮助,但我会在有时间的时候看看我是否能想出一些对你现在有帮助的东西。
  • 您好,感谢您的回答!我决定暂时在没有 Rx 的情况下解决它,但我仍然对如何以 Rx 的方式来解决它感兴趣(最好是清晰的)。 NSTimer 不是很漂亮。

标签: ios swift rx-swift reactivex


【解决方案1】:

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

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

【讨论】:

  • 我去看看!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多