等待API调用以完成RxJava和Retrofit

我正在使用RxAndroid和RxJava和Kotlin向API发出各种请求,并以异步方式将其收回:

getClient().sendSomeData(data) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { Log.i("upload", "data ok") }, { t -> Log.e("upload", "data error: " + t.stackTrace) } ); getClient().sendSomeOtherData(otherData) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { Log.i("upload", "otherData ok") }, { t -> Log.e("upload", "data error: " + t.stackTrace) } ); 

等等。 现在我想要做的是,等待所有api请求完成并显示进度。 我如何等待所有可观察的事情完成并获得进展回调?

在这里和这里回答你的第一个问题,你会看到提到的Observable.onCompleted方法,这是成功的响应后调用。 这里也是这个方法的文档。 所以你可以简单地在subscribe方法调用中实现第三个Action并修改你的请求的状态信息。

如果涉及到请求进度状态,我不确定,但是我想RxJava并不提供这种function。 不过,我在这里find了答案(使用Retrofit库)。