如何在RxJava中增加某些项目的延迟

问题描述

我想要实现RxChain的目的如下:

可观察的源正在发射两种类型的数据(S,E)。现在,我想要一个可观察/可流动的对象,它会立即发出所有S信号,但是如果同时没有S信号,它应该在从第一次发出E信号经过给定的延迟(10秒)之后发出最新的E信号。

enter image description here

解决方法

您可以将它们分为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(...);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...