问题描述
我有一个可观察的(“输入”)发射类型A和B的项目。如何使用RxPY运算符实现以下情况?
情况1:如果在输入中看到A,则如果在输入流中的A发射与输出流中的A发射之间没有其他事件,则以t个时间单位执行A的延迟。
input ---A------------
|
output ----------A----- delayed by some time t
情况2:与情况1一样,我们首先看到A1,然后在输出中以t个时间单位启动A1延迟。但是与此同时(即在输出A1发出之前),我们在输入中看到A2,我需要执行一个更新:输出中的A1将被取消,而A2接收剩余的延迟时间t-elapsed_time(以便A2在与A1相同的时间会在输出中触发)。换句话说,我只需要更新输出流中的数据-延迟不会改变。
input ---A1---A2-------------
| |
output -----------------A2----
案例3:如果像案例1一样,我们有计划的A延迟输出,并且在A触发输出之前在输入中出现了B,那么将取消延迟输出事件A,而是立即让B出现在输出中
input ---A----B----------
| |
output --------B----------
我认为,如果我处理案例1和案例3,那么案例2应该相似(只需要附加某种时间计数器来测量经过时间)。问题是情况3:如何取消已经启动的延迟事件?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)