【问题标题】:RxJava longer time interval period depended on current emission numberRxJava 更长的时间间隔周期取决于当前的发射数量
【发布时间】:2017-11-20 13:35:13
【问题描述】:

假设有一个时间间隔 Observable,它每隔一秒发出 Long 项目。如何扩大与当前排放数量相关的时间段?

例如,对于前 4 次发射,它应该每秒发射一次,但之后它应该每 3 秒发射一次?

这可能实现吗?

【问题讨论】:

    标签: rx-java rx-java2


    【解决方案1】:

    您可以使用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() 设置,该函数给定发射数以计算 @987654326 中的延迟@。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多