短いバージョン:Akavacheを追加せずに自分のコード(https://github.com/akavache/Akavache/blob/501b397d8c071366c3b6783aae3e98695b3d7442/src/Akavache/Portable/JsonSerializationMixin.cs#L202)でAkavacheのようなGetAndFetchLatest
メソッドを実装するにはどうすればいいですか?できるだけ早くリクエストと結果を得る
ロングバージョン: 私はディスクからTのリストを返すメソッドがあり、HTTPサービスから同じタイプのList<T>
を返すメソッドがあります。 両方とも非同期でラップされますTask<List<T>>
私のビューモデルでは、Observable<List<T>>
を返す1つのメソッドを呼びたいと思います。
私のViewModelでは、.Subscribe()
メソッドを使用してUIを更新します。 本質的に私は、データが利用可能であることを2回通知する必要があり、購読のコードも2回行われることになります。
この機能は、GetAndFetchLatest
メソッドの形でAkavacheで利用できますが、私は自分の2データメソッド呼び出しで自分自身を実装する方法を理解するために、RXの流暢さにはほど遠いところです。
注:私は両方のタスクを待っていません!私は同時にデータを返すとすぐに両方を起動したいと、Observable
に通知します。
ヒント? GetFromWeb
仕上げGetFromDisk
前に、その場合には、私はあなたが無視したいと仮定していますとは考えにくいが、可能なシナリオに対応していないこと、しかし
var merged = Observable.Merge(
GetFromWeb().ToObservable(),
GetFromDisk().ToObservable()
);
//Same thing using extension syntax
var simply = GetFromWeb().ToObservable()
.Merge(GetFromDisk().ToObservable());
:
これは有望です!私はこれを試してみよう... – Depechie
fromDebの結果がプッシュされた後、fromWebの結果を優先させるのではなく、延期する方法がありますか? fromWebの開始とともに待つのではなく、fromDiskのものがプッシュされた後に結果をobservableに追加するのを待つか? – Depechie
これは同時に開始リクエストであり、 'FromDisk'がどれほどの時間を要しても、常に最初に出てくるでしょうし、できるだけすぐに' FromWeb'が来ますか? – Shlomo