Rx java 将布尔观测值列表映射到输出中,每当所有输入都为真时,该输出将发出真
假设我有n个布尔值(Rx java 将布尔观测值列表映射到输出中,每当所有输入都为真时,该输出将发出真,rx-java,reactive-programming,Rx Java,Reactive Programming,假设我有n个布尔值(O1,O2,…,,On),它们发出标志,指示复选框选择状态 例如,对于n=3,我们将有如下内容(T=true和F=false): 我想得到一个输出布尔值可观察的(Oout),当所有最新的发射都是true或false时,它会发射true。大概是这样的: O1 - T ------------------- F ----------------------- T ------ O2 - F ------------ T -----------------------
O1
,O2
,…,,On
),它们发出标志,指示复选框选择状态
例如,对于n=3,我们将有如下内容(T
=true
和F
=false
):
我想得到一个输出布尔值可观察的(Oout
),当所有最新的发射都是true
或false
时,它会发射true
。大概是这样的:
O1 - T ------------------- F ----------------------- T ------
O2 - F ------------ T ---------------------------------------
O3 - T -------------------------- F -------- T --------------
================================================================
Oout - F ------------ T ---- F ----------------------- T ------
在RxJava中有没有一种奇特的方法可以做到这一点(也就是说,不需要自己创建自定义的可观察对象和监视状态。我觉得两个操作员可以完成这项工作) 静态方法可观察。CombineTest(列出可观察对象,FuncN combineFunction)
是您要寻找的东西
您传入一个可观察对象列表和一个确定输出的组合函数,在您的情况下,只要一个for循环就足以检查它们是否都是真的。Nice!我不知道这件事。通过使用distinctUntilChanged()
我可以实现我想要的。谢谢
O1 - T ------------------- F ----------------------- T ------
O2 - F ------------ T ---------------------------------------
O3 - T -------------------------- F -------- T --------------
================================================================
Oout - F ------------ T ---- F ----------------------- T ------