私はいくつかの値を抽出し、アイテムごとにAPI呼び出しを行う必要がある項目のリストを持っています。すべての呼び出しが並行して行われている理由の問題があるので、私はthis_android RxJava Observable.fromからサービスに投稿する
Observable.from(myList)
.flatMap{ item ->
return serviceInteractor.uploadToServer(item)
}
.map { serverResponse ->
return serverResponse.getResponseCode
}
.toList()
.subscrible{ responseList ->
// do something with all the responses
}
オクラホマのようなものを使っていることを行うために、私は知りません。 最初の応答を待ち、結果をマップし、Observable.from()の次の項目に進み、最後にresponseMessagesの最終リストを返しますか?起こっていることは、すべてが同時に起こることです。これを確認するには、toList
メソッドの前に遅延(1、TimeUnit.Seconds)を入れると、すべてが同時に発生し、最後のonNextだけが遅延します。
どうすればいいですか? IDのリストを持っていて、1つずつサーバにアップロードし、それぞれが完了するのを待って、成功または失敗した場合は次へ進みます。
なしに答えを与えるために遅れる知っ
toList()
を使用しているように、その遅延がarrDelay
項目の合計となりますチェックすることができ、それを行うことになっていません。 – njzk2この回答は、あなたが尋ねたことを行う演算子を記述しています:http://stackoverflow.com/a/33633753/671543 – njzk2
Observable.from(list)がObservable- を既に返すので、最初のflatMapを単純なマップ演算子にするべきではありません?私はRxJavaに経験はありません –
GSala