[英]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.