据文献记载,,
Observable
有
flatMap()
类签名函数
public final <U,R> Observable<R> flatMap(Function<? super T,? extends ObservableSource<? extends U>> mapper,
BiFunction<? super T,? super U,? extends R> resultSelector)
这正是您在最新案例中使用的。但是
Single
只有
flatMap()
签名像
public final <R> Single<R> flatMap(Function<? super T,? extends SingleSource<? extends R>> mapper)
这就是为什么你不能随心所欲地直接使用它。如果你还想用
单身
userViewModel.getUser(id)
.flatMap(user -> messagesViewModel.getFromUser(user.getId())
.map(messages -> new Pair<>(user, messages)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())