【发布时间】:2018-01-11 09:17:38
【问题描述】:
我使用 Retrofit 和 RxJava 从 Facebook 的两个页面下载帖子。我想通过 Observable.zip 下载它们,但我得到了onError : An operation is not implemented: not implemented。
我的代码:
var fb1 = dataManager.getPosts(ApplicationConstants.FACEBOOK_PAGE_1, ApplicationConstants.FACEBOOK_APP_TOKEN, "70")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
var fb2 = dataManager.getPosts(ApplicationConstants.FACEBOOK_PAGE_2, ApplicationConstants.FACEBOOK_APP_TOKEN, "70")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
val observableZip : Observable<PostList> = Observable.zip(fb1,fb2, object: Function<PostList, PostList>, BiFunction<PostList, PostList, PostList> {
override fun apply(t: PostList): PostList {
}
override fun apply(t1: PostList, t2: PostList): PostList {
}
})
compositeDisposable.add(observableZip.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(
{result -> posts.addAll(result.data)},
{t : Throwable? -> Log.d("TAG",t?.message) },
{view.setAdapter(posts)
view.hideProgressBar()}
))
我不太明白如何制作Observable.zip,因为网上的例子没有解释清楚。
问:如何更改我的代码以使 Observable.zip 工作?
【问题讨论】:
-
能否包含错误的完整堆栈跟踪
-
它在
observableZip中抛出错误:D/TAG: An operation is not implemented: not implemented -
尝试用返回 observable 的函数替换你的 fb1 和 fb2 变量。
-
尝试只订阅
fb1,看看它会产生什么。另请发布t.printStackTrace()打印的内容,而不是Log.d生成的内容。 -
@akarnokd 如果 droho 订阅,
fb1和fb2将是Disposables,所以zip将没有任何内容...
标签: java android kotlin rx-java observable