Итак, следующий сценарий: у меня есть динамический массив с идентификаторами.И я хочу сделать для каждого идентификатора в этом списке запрос к API.Следующие запросы должны начинаться только тогда, когда предыдущий запрос получил успешный ответ.Так что никаких претензий не требуется.Есть ли какой-нибудь симпатичный способ получить это с помощью retrofit и rxjava.
У меня есть одно решение с рекурсивной функцией:
foo(int position, List<Int> idList, ApiController controller){
if(idList.size() < position){
//execute finish
}else{
controller.postRequest().subscribe(()->{
//Request finish. Do next request...
foo(++position, idList, controller);});
}
Есть ли способ сделать это в симпатичном с rxjava2?
Я только что придумал асинхронное решение для rxjava2: (которое мне хорошо, но не полностью заполняет работу ...
Observable.fromIterable(idList).flatMapCompletable(id -> {
controller.doRequests();})
.subscribe(()->{
//Finished all requests. Do stuff
});