我有这样的服务
@GET("/")
fun getInfo(@Query("pew") pew1: Double, @Query("pew2") pew2: Double): Observable<PewResponse>
现在,当我有这个
我有一个要填充服务器数据的列表
private var mPewList: MutableList<PewList> = arrayListOf()
然后我有这个功能
override fun getResultFromNetwork(): Observable<PewResponse> {
val pewObservable = pewService.getInfo("pew1","pew2")
return pewObservable.concatMap {
//How do I fill my list ??
}
}
对此rxJava
来说,我还很陌生,所以我看到有人使用Single
而其他人使用Observable
有什么更好的?
现在我想做这样的事情:
@Override
public Observable<Result> getResultFromNetwork() {
Observable<TopMoviesRated> topMoviesRatedObservable = moviesApiService.getTopMoviesRated(1)
/*.concatWith(moviesApiService.getTopMoviesRated(2))
.concatWith(moviesApiService.getTopMoviesRated(3))*/;
return topMoviesRatedObservable
.concatMap(new Function<TopMoviesRated, Observable<Result>>() {
@Override
public Observable<Result> apply(TopMoviesRated topMoviesRated) {
return Observable.fromIterable(topMoviesRated.getResults());
}
}).doOnNext(new Consumer<Result>() {
@Override
public void accept(Result result) {
results.add(result);
}
});
}
因此,我看到他填写了结果列表,然后在主持人上执行此操作:https://github.com/joanby/android-mvp/blob/master/MoviesFeed/app/src/main/java/com/juangabriel/moviesfeed/movies/MoviesPresenter.java
答案 0 :(得分:2)
如果来自服务器的数据是整体数据,则应使用greater(0,[],0):-!, fail.
greater(N,[N],1).
greater(N,[H|Q],X):-H>N,greater(Q,N,X),X is X+1.
,因为它仅返回一次值。当您的数据分块到达时,Single
就会执行。
有关更多详细信息,您可以看到以下答案:https://stackoverflow.com/a/42759432/9060113
编辑:
Observable