rx-java2 - 如何仅处理一段时间内的最后一个事件?
问题描述
我收到了很多间隔一秒的事件。我想每秒处理最近的事件。例如 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15。每秒 5 个事件。因此我只想在第 1 秒进行事件 5,在第 2 秒 2 进行 10 事件,在第 3 秒进行 15 事件。我对可流动但它只是在事件之间引入延迟,如果事件流是恒定的,则不会触发去抖动
解决方案
似乎这throttleLast(1, TimeUnit.SECONDS)
就是你所需要的。它仅在指定持续时间的连续时间窗口内发出由反应源发出的最后一项。
推荐阅读
- mysql - 如何检查 Oracle MySQL 中的存储过程 if-block 中是否存在行
- reactjs - React - 测试卡组件(Ant Design)
- ios - 拒绝 JS Geolocation 请求后,用户如何重置权限设置?(iOS Safari)
- android - 找不到 com.android.tools.lint:lint-gradle:26.1.4
- java - 如果字段实现了该接口,如何实现该接口
- c++ - 从二进制文件中读取结构并插入向量/STL::list 然后返回它
- python - 熊猫数据框忽略列值左侧的零
- azure - 使用 Azure 服务的架构服务器-客户端
- mvvmcross - 单元测试 MxvAsyncCommand 时的 MVVM 交叉空引用
- python - 从 scipy stat 和 popt 解释参数值