【问题标题】:dynamic interval after emitting item in rxjava在 rxjava 中发射项目后的动态间隔
【发布时间】:2022-01-31 10:57:53
【问题描述】:

我正在尝试为使用RxJava 发出的列表项添加动态内部。

目前在我每 10 秒后的流程中,我正在发射项目,但我想要实现的是在发射第一个项目后会有 60 秒的延迟,然后其余项目将在 10 秒的延迟后继续。

  1. 项目 #1 发射
  2. 60 秒延迟
  3. 项目 #1 发射
  4. 10 秒延迟
  5. 项目 #2 发射
  6. 10 秒延迟等

我目前的代码如下

.flatMap(dataList -> Observable.fromIterable(dataList)
            .zipWith(Observable.interval(10, TimeUnit.SECONDS), (item, interval) -> item)
            .doOnNext(data -> {
                
            })

【问题讨论】:

    标签: java android rx-java rx-java2


    【解决方案1】:

    使用 just() 和 interval() 的组合,初始延迟为 60

    .zipWith(
            Observable.just(-1L)
            .concatWith(Observable.interval(60, 10, TimeUnit.SECONDS)), 
            (item, interval) -> item
    )
    

    【讨论】:

    • 你能详细说明一下这个方法吗
    • 您可以通过刚刚和最初延迟的间隔创建所需的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多