简体   繁体   English

如何为 RxJava 中的某些项目添加延迟

[英]How to add delay for some items in RxJava

I want to implement a RxChain for the following purpose:我想实现一个 RxChain 用于以下目的:

An observable source is emitting two types of data (S, E).一个可观察的源发出两种类型的数据(S,E)。 Now I want an observable/flowable which will emit all the S immediately but it should emit the latest E after a given delay (10 sec) from the first emission of E if no S comes in the meantime.现在我想要一个可观察/可流动的,它将立即发出所有的 S,但如果同时没有 S 出现,它应该在 E 的第一次发射后的给定延迟(10 秒)后发出最新的 E。

在此处输入图像描述

Instead of having 1 observable source emitting both S and E, you could instead split them into 2 observables, add a throttleLast 10s on the "E stream" and then merge them together与其让 1 个可观察源同时发射 S 和 E,不如将它们拆分为 2 个可观察源,在“E 流”上添加一个throttleLast 10s,然后将它们合并在一起

eg例如

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(...);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM