Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RxJava的doOnSubscribe在emit之后而不是之前调用_Android_Kotlin_Rx Java2 - Fatal编程技术网

Android RxJava的doOnSubscribe在emit之后而不是之前调用

Android RxJava的doOnSubscribe在emit之后而不是之前调用,android,kotlin,rx-java2,Android,Kotlin,Rx Java2,我有一个RxJava的链,看起来像这样: Completable.complete() .andThen(fetchData()) .andThen(fetchAnotherData()) .andThen(...) .doOnSubscribe { /* some action */ } 问题是doOnSubscribe回调中的代码在last和Then之后调用。但我希望在获取任何数据之前调用它。如何实现它?尝试推迟订阅fetchData

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

Completable.complete()
    .andThen(fetchData())
    .andThen(fetchAnotherData())
    .andThen(...)
    .doOnSubscribe {
        /* some action */
    }
问题是doOnSubscribe回调中的代码在last和Then之后调用。但我希望在获取任何数据之前调用它。如何实现它?

尝试推迟订阅fetchData Completable

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

也来看看这个答案