2016-08-14 13 views
1

私はワークフローを持っています。私はRxJavaを使って達成しようとしています。それを実装する方法を理解するのは難しいです。Observableの戻り値を持つネストされたメソッド呼び出し

Observable<String> methodA(String input){ 
     retValue = methodB(input); 
     if(something){ 
     return retValue; 
     } else{ 
     return methodC(input); 
     }  
    } 

    Observable<String> methodB(String input); 
    Observable<String> methodC(String input); 

私は実際に私が実際に動作する方法を見つけることができませんmap()を使用しようとしているが、よ: これは私が達成しようとしているものです。

どのような考えですか?

答えて

1

使用.flatMap()(あなたの条件はmethodBの結果に依存している場合):

retValue = methodB(input) 
    .flatMap(item -> { 
    if(something){ 
     return just(item); 
    } else{ 
     return methodC(item); 
    } 
    }) 
1

それとも、場合

retValue = methodB(input) 
      .filter(something) 
      .switchIfEmpty(methodC(item)) 
古いファッションを避けたい場合は、組み合わせ フィルタ/ switchIfEmptyを使用することができます
関連する問題