Последовательные сетевые вызовы RxJava
Я хочу сделать два вызова, один для списка репозиториев на github, второй для коммитов на каждом репо, и хочу сохранить их вместе.
Во втором вызове мне нужен экземпляр родительского pojo, чтобы я мог добавить к нему ответ потомка.
т.е. сохранить: Гитрепо где
Gitrepo{
var name:String,
var commit:Commit //<-this is fetched in second call
}
текущий код:
networkModule.getRepos()
.flatMap { itemList ->
Observable.fromIterable(itemList)
}
.concatMapEager { item -> networkModule.getCommits(item.name!!)
.onErrorResumeNext(Observable.empty()) }
.subscribe(
{
//problem is here I get only Commit pojo,
//and have no access to Gitrepo, I'd like to do:
//gitrepo.commit = it
//db.save(gitrepo)
},
{
utilModule.logI("error response" + it.message)
}
)
1 ответ
Решение
Я полагаю, что GitRepo - это класс
попробуй это:
networkModule.getRepos()
.flatMap { itemList ->
networkModule.getCommits(itemList.name!!).map{
item -> GitRepo(
name = itemList.name,
commit = item
).onErrorResumeNext(Observable.empty())
}
}
.subscribe(
{
/*do what you want*/
},
{
utilModule.logI("error response" + it.message)
}
)