Rxjava - 如何在并行调用两个 API 时使用不同的参数重试 API 调用

Rxjava - How to retry an API call with different params while calling two APIs in parallel

我正在按以下方式进行两次 API 调用。如果两个 API 调用中的任何一个失败,我想通过更改某些参数来重试 API。如何实现?

Single.zip(API1.subscribeOn(Schedulers.io()),
                API2.subscribeOn(Schedulers.io()), Bifunction())).subscribe();

你可以在这里使用 onErrorResumeNext 来处理你的场景。对于这两个 API 调用,添加一个 onErrorResumeBlock,它可以使用 diff 参数重试相同的 api。 喜欢:

Single.zip(API1.subscribeOn(Schedulers.io())
     .onErrorResumeNext { throwable:Throwable ->
     return@onErrorResumeNext API1DIFF_PARAMS },
     API2.subscribeOn(Schedulers.io())
     .onErrorResumeNext { throwable:Throwable ->
     return@onErrorResumeNext API2DIFF_PARAMS }, Bifunction())).subscribe();

缺点是这只能工作一次。如果您的第二个 API 也失败,那么它将落在您的订阅方法

的错误块中