reactive-programming - 速率限制可观察
问题描述
我有一个非常快地发射项目的 observable。我想限制这些项目。我的操作员每 x 秒最多只能发出 1 个元素,而忽略其余的。
具体来说,我想创建一个这样的运算符:
如您所见,它只会发出第一项,而忽略其余的 5 个时间单位。A、B 和 C 分别在 t=1、t=2 和 t=3 上。B 和 C 被忽略,因为生成的序列应该每 5 个时间单位发出最多 1 个项目。
当 D 到来时,它被发出,因为它在 5 个时间单位到期时到来,但 E 不是,因为 D 已经发出。最后,原始序列很长一段时间都没有发出任何东西,直到 F 到来。派生的序列发出 D。
请注意,派生序列发出第一个元素,并且在指定的时间跨度过去之前它不会发出任何其他项。一旦时间跨度到期,它就可以接受另一个项目了。
如何创建此运算符?
解决方案
推荐阅读
- sql - 情况下......对于子组
- javascript - html 复选框关联数组 - 如何在 javascript 中访问此数组?
- sql - 如何从列等于一个值但不应等于另一个值的表中选择记录?
- windows - 在触发 Windows 关闭脚本之前 NW 适配器是否会关闭?
- python-3.x - 如何在弹性搜索中访问存储的二维浮点数组?
- grails - 如何通过 Grails Web 控制台插件添加依赖项并使用它
- sql - Oracle:仅从一行中选择特定值
- javascript - 在 laravel 刀片中将引导日期格式设置为 yyyy-mm-dd
- java - 使用存储数组 BigDecimal Hibernate 的字段创建实体
- python - Ubuntu MYSQL 无法从 python 脚本连接