输入自己的值来组合最新

我有这个最好的流动性:

private val subject: BehaviorSubject<Int> = BehaviorSubject.create() Flowable.combineLatest( materialA, materialB, subject.toFlowable(LATEST), Function3 { ma, mb, index -> if(index == 0) ... else if(index ==1) ... else ... } subject.onNext(99) 

基本上,我想观察这两个材料的数据库变化,并结合他们向用户显示一些数据。 有时,我需要使用最新的输出,并做一个不同的组合(计算量大)。 这就是为什么我把这个index作为一个来源。 这是一个有效的方法,还是有更好的选择?

PS。 我需要能够随时要求一个不同的组合(这是我没有使用Flowable.just()),我想避免保存在obs链之外的状态。