首页 > 解决方案 > RxJava 的 doOnSubscribe 在发出之后而不是之前调用

问题描述

我有一个看起来像这样的 RxJava 链:

Completable.complete()
    .andThen(fetchData())
    .andThen(fetchAnotherData())
    .andThen(...)
    .doOnSubscribe {
        /* some action */
    }

问题是 doOnSubscribe 回调中的代码在 last andThen() 之后调用。但我希望在获取任何数据之前调用它。我如何实现它?

标签: androidkotlinrx-java2

解决方案


尝试defer订阅fetchData()Completable

   Completable.complete()
            .andThen(Completable.defer { fetchData() })
            .andThen(Completable.defer { fetchAnotherData() })
            .doOnSubscribe { /* some action */ }

推荐阅读