我有一個項目列表,我需要提取一些值,併爲每個項目進行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列表,想要逐一上傳到服務器,等待每一個完成,繼續下一步,如果成功或失敗
不認爲延遲將總
arrDelay
項目,它不應該這樣做。 – njzk2這個答案描述了一個操作符來執行你所要求的操作:http://stackoverflow.com/a/33633753/671543 – njzk2
自從Observable.from(list)返回Observable- 以來,第一個flatMap不應該是一個簡單的映射操作符?雖然我對RxJava沒有經驗 –
GSala