Rx Java:发出第一项,忽略接下来的项5秒钟

时间:2018-12-05 14:24:33

标签: rx-java rx-java2

请考虑以下情况:

  • 用户多次单击刷新按钮。
  • 我只希望处理一次单击,而忽略其他单击5秒钟。
  • 在5秒后处理另一个新点击。

2 个答案:

答案 0 :(得分:0)

对于rxjava2,您可以使用:

.throttleFirst(1, TimeUnit.SECONDS)

来自javadoc documentation

  

throttleFirst :   返回一个Observable,该Observable在指定持续时间的连续时间窗口内仅发出源ObservableSource发出的第一项。

答案 1 :(得分:0)

Rxjava 2中,您应该使用debounce运算符,如果经过了特定的时间跨度却没有发出其他项目,则该操作符会从Observable中发出一项

isExpanded