假设有一个Observable时间间隔,每隔一秒发出一次Long项。如何扩大与当前排放数量相关的时间段?
因此,例如对于前4次排放,它应该每秒发射一次物品,但之后它应该每隔3秒发射一次物品?
这有可能实现吗?
答案 0 :(得分:0)
您可以使用switchMap()
运算符根据发射次数设置延迟间隔。
observable
.zipWith( Observable.range(20_000), new Pair<>(item, itemNumber ))
.switchMap( pair -> Observable.just( pair.getFirst() )
.delay( emissionDelay( pair.getSecond() ), units )
...
zipWith()
运算符生成与其发射编号配对的项目,而switchMap()
创建一个新的observable,其延迟由函数emissionDelay()
设置,该函数的发射编号为计算units
中的延迟。