Android Room数据库RxJava flatmap链请求
我想买一双:Android Room数据库RxJava flatmap链请求,android,rx-java,android-room,flatmap,Android,Rx Java,Android Room,Flatmap,我想买一双: Pair<User,List<Messages>> 根据文献记载,Observable具有类似签名的功能 public final <U,R> Observable<R> flatMap(Function<? super T,? extends ObservableSource<? extends U>> mapper, BiFunction<? super T,? super U,? exte
Pair<User,List<Messages>>
根据文献记载,Observable具有类似签名的功能
public final <U,R> Observable<R> flatMap(Function<? super T,? extends ObservableSource<? extends U>> mapper,
BiFunction<? super T,? super U,? extends R> resultSelector)
public final <R> Single<R> flatMap(Function<? super T,? extends SingleSource<? extends R>> mapper)
这就是为什么你不能随心所欲地直接使用它。如果仍要使用Single并解决问题,可以使用next表达式
userViewModel.getUser(id)
.flatMap(user -> messagesViewModel.getFromUser(user.getId())
.map(messages -> new Pair<>(user, messages)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
谢谢是的,我检查过,没有这样的方法签名,对于单函数,有双函数。我想在flatMap中使用map是使用Single的唯一方法。
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())