AnObject インスタンスの配列があり、次の一連のアクションを実行する必要があるとします。
- 個別の呼び出しでオブジェクトをバックエンドに送信する
- ステップ1が終了したら、この配列をDBにバッチで保存します
- ステップ 2 が終了したら、各アイテムの追加処理を行います
そして、これらすべてのステップが実行された後 (またはエラーが発生した後) にのみシグナルを受信したいと考えています。RxSwiftを介してこれを達成する正しい方法は何ですか?それは実際に可能ですか?
以下のプロトタイプ関数を見つけてください。残念ながら、連鎖のための有効なコード サンプルが思いつかなかったので、デモするものは何もありません。
func makeAPIRequest(object: AnObject) -> Observable<Void> {
...
}
func storeData(data: [AnObject]) -> Observable<Void> {
...
}
func additionalProcessing(object: AnObject) -> Observable<Void> {
...
}
func submitData()
{
let data: [AnObject] = ...;
let apiOperations = data.map{ makeAPIRequest($0) };
let storageOperation = storeData(data);
let processingOperations = data.map{ additionalProcessing($0) };
... // some code to chain steps 1-3
.subscribe { (event) -> Void in
// should be called when operations from step 3 finished
}.addDisposableTo(disposeBag);
}