【问题标题】:How to add delay for some items in RxJava如何为 RxJava 中的某些项目添加延迟
【发布时间】:2020-08-14 16:52:52
【问题描述】:

我想实现一个 RxChain 用于以下目的:

一个可观察的源发出两种类型的数据(S,E)。现在我想要一个 observable/flowable,它会立即发出所有的 S,但如果同时没有 S 出现,它应该在 E 的第一次发射后的给定延迟(10 秒)后发出最新的 E。

【问题讨论】:

    标签: java rx-java rx-android


    【解决方案1】:

    您可以将它们拆分为 2 个可观察源,在“E 流”上添加 throttleLast 10s,然后将它们合并在一起,而不是让 1 个可观察源同时发射 S 和 E。

    例如

    Observable<String> sStream = source.filter(x -> x.type == Types.S);
    Observable<String> eStream = source.filter(x -> x.type == Types.E).throttleLast(10, TimeUnit.SECONDS);
    
    
    Observable.merge(sStream, eStream).subscribe(...);
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多