0
私はRxJavaを初めて使用しています。私は現在、既存の同期フローを変更し、既存のメソッドに対して返されたオブザーバブルを使用して非同期にしています。RxJava - 返品特定の条件で観察可能
フローの1つでは、DBから項目を受け取るためにリモート呼び出しを行います。データベースへの呼び出しが非同期であるため、私は観測可能なものを返します。ただし、項目がデータベースに存在しない場合は、値はNULLになります。
値がNULLの場合は、さまざまな他のリモートサービスへの非同期呼び出しを追加し、最終的に観測可能な応答を返す必要があります。
RxJavaでこのようなフローを実装する方法はわかりません。ここではサンプルの擬似コードは次のとおりです。
void searchSomethingAsych(String key) {
Observable<SearchResult> result = doTheSearch(key);
}
Observable<SearchResult> doTheSearch(String key) {
Observable<SearchResult> resultFromDb = checkIfExistsInDb(key);
// THIS IS WHERE I AM NOT SURE HOW TO DO THIS
resultFromDb.subscribe((result)- > {
if(result == null){
// .. go get this from somewhere else
Observable<SearchResult> resultFromSomewhere = getSearchResultFromSomewhereElse(key);
// how do I return the 'resultFromSomewhere' ????
}
});
}