我有一个任务要合并两个可观察对象-一个是从数据库中存在的有限可观察对象(称为 databaseStream ),另一个是从队列中存在的无限可观察对象( queueStream )。客户端订阅时,我需要立即订阅 queueStream ,但是缓冲项目直到 databaseStream 都将完全完成。发生这种情况时,我要发出 queueStream 的所有缓冲项目。之后,必须立即发射 queueStream 中的所有项目。使用RxJava 2有什么方便的方法吗?
答案 0 :(得分:0)
发现灵感here
Flowable<Foo> queueStream = queueStream()
.subscribeOn(Schedulers.newThread());
Flowable<Foo> databaseStream = databaseStream()
.subscribeOn(Schedulers.newThread());
Flowable.concatEager(Arrays.asList(databaseStream, queueStream), 2 , 1000)
.distinct(identityFunction())
.blockingSubscribe(System.err::println);