簡體   English   中英

Observable.zip問題

[英]Observable.zip issues

我使用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,因為Internet中的示例沒有得到清晰的解釋。

問:如何更改我的代碼以使Observable.zip工作?

您的zip應如下所示:

val observableZip : Observable<PostList> = Observable.zip(fb1,fb2, object : BiFunction<PostList, StriPostList, PostList> {
        override fun apply(t1: PostList, t2: PostList): PostList {
           // do the zipping
        }
    })
  1. 沒有類型為Function BiFunction zip BiFunction 僅可觀察對象的列表,然后是BiFunction (或者,一個ObservableSource和一個正常Function
  2. 使用Rx中的BiFunction非常重要,因此請確保您使用的是import io.reactivex.functions.BiFunction 而不是 java.util.function.BiFunction

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM