Android 如何将自定义pojo作为参数传递给rxjava2 Observable中的接口方法调用?
当前代码Android 如何将自定义pojo作为参数传递给rxjava2 Observable中的接口方法调用?,android,rx-java,retrofit2,rx-android,Android,Rx Java,Retrofit2,Rx Android,当前代码 Observable.from(listMovie)//list of movie .flatMap(new Func1<Movie, Observable<FavMovieRes>>() { @Override public Observable<FavMovieRes> call(Movie movie) { r
Observable.from(listMovie)//list of movie
.flatMap(new Func1<Movie, Observable<FavMovieRes>>() {
@Override
public Observable<FavMovieRes> call(Movie movie) {
return moviesAPI.makeMovieFav(userId),
sessionId, new MakeMovieFav("movie", movie.getId(), movie.isFavList()));
}
})
.subscribe(new Subscriber<FavMovieRes>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(FavMovieRes favMovieRes) {
}
});
Observable.from(listMovie)//电影列表
.flatMap(新函数1(){
@凌驾
公众可观测呼叫(电影){
返回moviesAPI.makeMovieFav(userId),
sessionId,新MakeMovieFav(“movie”,movie.getId(),movie.isFavList());
}
})
.subscribe(新订户(){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效申报人(可丢弃的e){
}
@凌驾
公共void onNext(FavMovieRes FavMovieRes){
}
});
在上面的代码中,我将电影对象列表传递给可观察对象,并在从API获得结果时对列表中的每个电影实例执行操作。我想更改有关该电影实例的一些数据库。如何在OnNext()中获取每个电影实例以及subscribe方法的onError方法。
我想要的是
Observable.from(listMovie)
.flatMap(new Func1<Movie, Observable<FavMovieRes>>() {
@Override
public Observable<FavMovieRes> call(Movie movie) {
return moviesAPI.makeMovieFav(String.valueOf(SharedPreferenceDataManager.getUserId(SyncFavListPeriodicTask.this)), SharedPreferenceDataManager.getSessionId(SyncFavListPeriodicTask.this), new MakeMovieFav("movie", movie.getId(), movie.isFavList()));
}
}).subscribe(new Subscriber<FavMovieRes>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e,Movie movie) {//or MakeMovieFav makeMovieFav
}
@Override
public void onNext(FavMovieRes favMovieRes,Movie movie) {//or MakeMovieFav makeMovieFav
}
});
Observable.from(listMovie)
.flatMap(新函数1(){
@凌驾
公众可观测呼叫(电影){
返回moviesAPI.makeMovieFav(String.valueOf(SharedPreferenceDataManager.getUserId(SyncFavListPeriodicTask.this))、SharedPreferenceDataManager.getSessionId(SyncFavListPeriodicTask.this)、newmakemoviefav(“movie”、movie.getId()、movie.isFavList());
}
}).subscribe(新订户(){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效者(可丢弃的e、电影){//或MakeMovieFav MakeMovieFav
}
@凌驾
public void onNext(FavMovieRes FavMovieRes,Movie Movie){//或MakeMovieFav MakeMovieFav
}
});
我猜您有一个列表,希望为另一个异步操作处理每个收到的项目。对于这种情况,您可以平面映射每个结果
flatMapIterable
意味着它将拆分列表中的每个项目,以供流中的下一个操作观察flatMap
表示它将对接收到的值执行操作
如果要将结果放回一起,可以在flatMap之后使用toList
您需要为平面图创建一个可观察(操作)
Kotlin:
Observable.just(data)
.flatMapIterable { it }
.flatMap{ moviesAPI.makeMovieFavObservable(whatEver) }
.subscribe( ... , ... , ... )
Java(未经测试)
我猜您有一个列表,希望为另一个异步操作处理每个收到的项。对于这种情况,您可以平面映射每个结果
flatMapIterable
意味着它将拆分列表中的每个项目,以供流中的下一个操作观察flatMap
表示它将对接收到的值执行操作
如果要将结果放回一起,可以在flatMap之后使用toList
您需要为平面图创建一个可观察(操作)
Kotlin:
Observable.just(data)
.flatMapIterable { it }
.flatMap{ moviesAPI.makeMovieFavObservable(whatEver) }
.subscribe( ... , ... , ... )
Java(未经测试)
不,我已经实现了,我希望获得我处理的数据,而不是处理后的数据。在这种情况下,我希望在方法调用(Result Result)和调用(Throwable Throwable,Result Result)中获得每个结果对象不,我已经实现了。我希望获得我处理的数据,而不是处理后的数据。在这种情况下,我希望在方法调用(Result Result)和调用(Throwable Throwable,Result Result)中获得每个结果对象。