Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Room数据库RxJava flatmap链请求_Android_Rx Java_Android Room_Flatmap - Fatal编程技术网

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())