良いチェーンを作成しようとしています。私はこの質問が人気であり、尋ねられたと思うが、私はそれを見つけられていない。データベースとサーバーへのRxJavaチェーン
だから、私が望むのはデータベースに行くことです。その中に何かがなければ、サーバーから情報をダウンロードします。ここで
はコードです:
() -> loadPriceListFromDatabase.call(null)
.flatMap(mealTypes -> {
if (mealTypes.size() != 0) {
return Observable.just(mealTypes); //here is the place where I'm not sure about code style.
}
return loadPriceList.call(null)
.map(model -> {
preferences.setPriceListDate(model.getDate().getTime());
return ActiveAndroidHelper.saveMeals(model);
});
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()),
MainActivity::onTestLoaded,
BaseActivity::onError
だから私はこれをどのようにしたらよいでしょうか? はの例を使用する必要がありますか?
私は内部\ elseブロックであれば好きな条件を入れたい
UPD。
if (mealTypes.size() != 0) {
何かがnullでもゼロでもない。 たとえば、私はあなたに観察が自動的にパイプラインで新しいものを提供することができ、空である場合には
if (date == currentDate) { (//where date is timestamp
ただし、if \ elseはどこですか?私のデータベースはどちらの場合でも継続すると思いますが、それはゼロ要素でリストを返すことができるということです。 –
それは何かする必要はありません:完了するまで(concatのため)データベースObservableを購読します – CristianGM
データベースの完成後、ネットワークのために行くが、take(1)データベースコールonNextはネットワークを呼び出す前に終了します。 databaseObservableがObservable.empty()を返すと、networkObservableをサブスクライブします。 – CristianGM