Java 如何链接可观察对象?
我需要把两个观测值连起来,第二个取决于第一个。 因此,我得到的是: 可观察1->请愿返回可观察 我需要的是添加到TvShow对象Java 如何链接可观察对象?,java,kotlin,rx-java,reactive-programming,reactivex,Java,Kotlin,Rx Java,Reactive Programming,Reactivex,我需要把两个观测值连起来,第二个取决于第一个。 因此,我得到的是: 可观察1->请愿返回可观察 我需要的是添加到TvShow对象TvShow.setList(List)的第二个可观察(列表)的结果,然后返回它 提前感谢根据评论中提供的信息,您可以尝试使用以下代码(这是Java代码,但应该很容易将其转换为Kotlin): 根据注释中提供的信息,您可以尝试使用以下代码(这是Java代码,但应该很容易将其转换为Kotlin): 我不完全明白你在说什么。但我想你要找的是拉链function@mohsen
TvShow.setList(List)
的第二个可观察(列表)的结果,然后返回它
提前感谢根据评论中提供的信息,您可以尝试使用以下代码(这是Java代码,但应该很容易将其转换为Kotlin):
根据注释中提供的信息,您可以尝试使用以下代码(这是Java代码,但应该很容易将其转换为Kotlin):
我不完全明白你在说什么。但我想你要找的是拉链function@mohsen但是,如果第二个可观察的请求需要作为objectA属性的参数,我可以使用zip吗?对不起,英语不是我的第一语言。这是一种申请方法吗?什么是obeservable2?尝试调整问题和代码段/description@mslowiak我用(我认为)一个不太令人困惑的例子编辑了这个问题。@wilkin25在下面贴了一个答案,请看一下。我不完全明白你在说什么。但我想你要找的是拉链function@mohsen但是,如果第二个可观察的请求需要作为objectA属性的参数,我可以使用zip吗?对不起,英语不是我的第一语言。这是一种申请方法吗?什么是obeservable2?尝试调整问题和代码段/description@mslowiak我用(我认为)一个不那么混乱的例子编辑了这个问题。@wilkin25在下面贴了一个答案,请看一下
//kotlin
fun getTvShow(): Observable<TvShow> {
return retrofitPetitionGetShow()...
}
//java
Observable<TvShow> getTvShow(){
return retrofitPetitionGetShow()...
}
Observable.range(1, TvShow.totalSeasons)
.flatMap { seasonNumber: Int ->
retrofitPetitionGetSeason(seasonNumber)....
}.toList()
private Observable<TvShow> getTvShow() {
return retrofitPetitionGetShow();
}
private Single<List<Season>> getSeasons(TvShow tvShow) {
return Observable.range(1, tvShow.getTotalSeasons())
.flatMap(seasonNumber -> retrofitPetitionGetSeason(seasonNumber))
.toList();
}
public Observable<TvShow> chainObservables() {
return getTvShow()
.flatMap(tvShow -> getSeasons(tvShow).map(tvShow::withSeasons).toObservable());
}
public TvShow withSeasons(List<Season> seasons) {
return this.seasons == seasons ? this : new TvShow(this.name, this.totalSeasons, seasons);
}