Я пытаюсь получить пару:
Pair<User,List<Messages>>
Я прочитал эту статью: Шаблоны RxJava
Я в основном пытаюсь получить пользователя первым.Затем, когда у меня есть пользователь, я хочу получить все сообщения этого пользователя:
mDisposable.add(
userViewModel.getUser(id)
.flatMap(user -> messagesViewModel.getFromUser(user.getId()),(user, messages) -> new Pair<>(user, messages)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(//update view based on user and messages);
Код не работает, он жалуется на параметры, передаваемые в flatmap.
userViewModel.getUser(id)
возвращает Single<User>
messagesViewModel.getFromUser(user.getId())
возвращает Single<List<Message>>
Документация rx и определение метода для flatmap очень запутаны.Как мне этого добиться?Или есть другой способ сделать это?
Интересно, что он работает с Observable:
mDisposable.add(
Observable.just(1)
.flatMap(item -> Observable.just(2), Pair::new)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe());