私が抱えている問題はこれです。私はサーバーへのリクエストをいくつか実行する必要があります。次の各リクエストは、前のリクエストの結果に依存します。彼らはこのようになり (省略):私はPaymentResponseオブジェクトを返すか、要件の一部が満たされていない場合は()のonErrorを発するflatMapを使用して、単一の観測可能を作成しましたRxJava - リクエストの更新とUIの更新
Observable<FileUploadResponse> obsFile = api.uploadFile();
Observable<TokenCreateResponse> obsCreateToken = api.createToken();
Observable<PaymentResponse> obsPayment = api.submitOrder();
。これは正常に動作しており、すべての要求が1回の呼び出しで完了します。
問題は、これらの要求の間でUIを更新できないことです。現在の設定では、リクエストの開始時にロードを表示し、すべてのリクエストが完了したらロードを非表示にします。これらの要求の間にUIを更新する方法はありますか?
私が望むのは です。1.ファイルアップロード - UIにメッセージを書き込みます。 2.トークンの作成 - UIにメッセージを書き込みます。 3.注文の送信 - UIにメッセージを書き込みます。 4.すべて完了したら、進行状況ダイアログを非表示にします。
各APIコールが終了したときにonNext()を使用してObservableを発行し、すべて完了したときにonComplete()を呼び出すことを理解します。しかし、私はこれをどのようにして行うのですか?
処理パイプラインのどこでも 'doOnNext()'メソッドを使用して、何が起こっているのか、そして中間結果が何であるかを確認できます。もちろん、それぞれのスレッドでオブザーバとサブスクライブしてください。 – Raghunandan
もう一つの可能性は、あなたがあなたの 'サブスクライバ 'のタイプとして使用する共通のラッパー。 flatMap(tokenCreateResponse - > Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat(Observable.concat));という名前のものがあります。 StatusUpdate(tokenCreateResponse)、api.submitOrder())... ' - [RxSealedUnions](https://github.com/pakoito/RxSealedUnions)というライブラリは、このようなアプローチに役立ちます... –