问题描述
我想要实现RxChain的目的如下:
可观察的源正在发射两种类型的数据(S,E)。现在,我想要一个可观察/可流动的对象,它会立即发出所有S信号,但是如果同时没有S信号,它应该在从第一次发出E信号经过给定的延迟(10秒)之后发出最新的E信号。
解决方法
您可以将它们分为2个可观测对象,而不是让1个同时发射S和E的可观测源,在“ E流”上添加throttleLast
10s,然后将它们合并在一起
例如
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(...);