Я пытаюсь объединить две наблюдаемые в список объектов и просмотреть его во ViewModel.Я делаю это с помощью функции модернизации, которая возвращает Observable<TeamResponse>
.Я хочу вызвать функцию дважды, но функция может выдать ошибку, если в бэкэнд-API не было найдено ни одного объекта.
Я пытался использовать это:
val suggestedTeamsList = ArrayList<TeamResponse>()
Observable.just(teamUseCase.getTeamByUserId(player1ID), teamUseCase.getTeamByUserId(player2ID))
.flatMap {
return@flatMap it.subscribeOn(Schedulers.computation())
}.subscribeOn(Schedulers.computation())
.subscribe(object: Observer<TeamResponse> {
override fun onComplete() {
suggestedTeams.postValue(suggestedTeamsList)
}
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: TeamResponse) {
Log.d("TEST",t.teamName)
suggestedTeamsList.add(t)
}
override fun onError(e: Throwable) {
Log.d("TEST",e.message)
suggestedTeams.postValue(suggestedTeamsList)
}
})
, и это работает, но япредпочел бы получить результат в виде списка, даже если одна функция выдает onError, в этом случае список будет иметь только 1 объект.Или, может быть, у кого-то есть идея, как правильно с этим справиться?Как может быть случай, когда методы возвращают в обеих ситуациях onError