【发布时间】:2019-04-20 08:07:28
【问题描述】:
我想买一双:
Pair<User,List<Messages>>
我看了这篇文章:RxJava patterns
我基本上尝试先获取用户。然后,一旦我有了用户,我想获取该用户的所有消息:
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>>
flatmap 的 rx 文档和方法定义非常混乱。我怎样才能做到这一点?还是有其他方法可以做到这一点?
有趣的是,它似乎可以与 Observable 一起使用:
mDisposable.add(
Observable.just(1)
.flatMap(item -> Observable.just(2), Pair::new)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe());
【问题讨论】:
标签: android rx-java android-room flatmap