【发布时间】:2021-03-05 21:44:42
【问题描述】:
我希望我的 Observable 的每个发射在发射后都有延迟。即对于从Observable.fromIterable(listOf(1,2,3)) 发出的每个项目,我想要一个可变/动态延迟之后。
即给定计时器或延迟列表[3, 5, 10],我希望以下时间线与我的 observable 一起出现:
1 -> Wait 3 seconds -> 2 -> Wait 5 seconds -> 3 -> Wait 10 seconds
请注意,这与以下内容不同:
Wait 3 seconds -> 1 -> Wait 5 seconds -> 2 -> Wait 10 seconds -> 3
这可以通过 .zip + .delay 或 Observable.Timer 轻松实现
【问题讨论】:
-
通过“给定计时器或延迟列表
[3, 5, 10]”您是否已经在列表中创建了这些计时器,准备好使用(如何?)或者您只有值并且想要使用他们作为延误?延迟列表和值列表(来自其他可观察到的)是否以某种方式固定和/或提前知道?到目前为止,您尝试过什么?尝试时遇到了什么问题? -
是的,该列表是提前知道的。关于我所尝试的,我可以通过滥用订阅块并在那里放置延迟来产生我想要的示例输出,同时递归地进入链中并从以前减少列表。