2017-12-11 7 views
0

예를 들어 순차적으로 실행할 수 있습니다 그들의 23 관찰 가능한이있다첫 번째 관측 값 결과를 기반으로 두 관측 값을 결합하려면 어떻게해야합니까?

Observable<BaseObject> baseObj = getBaseObs(); 

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

baseObj 먼저 항상 실행되어야하고, 그 결과 baseObj.isFirst()true 동일한 경우, 관찰 obs1 즉시 실행해야 그렇지 않으면 obs2이 실행되어야합니다.

첫 번째 관측 가능 결과에 따라 두 관측 값을 결합하려면 어떻게해야합니까? 후속 관찰 가능한 주선 수

답변

1

switchMap() 연산자를 사용하여 관찰 될 :

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

관찰자 체인의 결과 baseObj에 따라 obs1obs2 또는 하나의 결과이다.