2017-12-11 28 views
0

例えば順次実行することができ、それらの 観測は、ありますが、最初の観測値の結果に基づいて2つの観測値を結合するにはどうすればよいですか?

Observable<BaseObject> baseObj = getBaseObs(); 

Observeable<Object1> obs1 = getObs1(); 
Observeable<Object2> obs2 = getObs2(); 

baseObjは、最初に必ず実行する必要があり、その結果baseObj.isFirst()trueに等しい場合、観測可能obs1はすぐに実行されなければなりませんそれ以外の場合はobs2を実行する必要があります。

最初の観察可能な結果に基づいて2つの観測値を組み合わせるにはどうすればよいですか?あなたがswitchMap()演算子を用いて観察すること、後続の観測のために手配することができ

答えて

1

baseObj 
    .switchMap(isFirst -> isFirst ? obs1 : obs2) 
    .subscribe(...); 

オブザーバチェーンの結果はbaseObjに応じて、obs1又はobs2のいずれかの結果です。