在这种情况下,我有一个使用 Retrofit 的 API 调用,可能由于网络错误而失败。如果失败,我们将显示带有重试按钮的错误消息。当用户按下重试按钮时,我们需要再次重试最新的 Observable。
可能的解决方案:
重试:在订阅 observable 之前应该使用重试,如果发生错误并且这是我不想要的,它会立即重新订阅,只有当用户按下重试按钮时我才需要重新订阅。
RetryWhen:它会在您发出项目时继续尝试,直到您发出 Observable 错误,然后它将停止。同样的问题,除非用户决定,否则我不需要开始重试过程。
重新订阅同一个 Observable:这个解决方案将开始发送 Observable 项目,问题是我们使用了缓存操作符,所以如果一个 Observable 失败,我们会缓存失败的项目,当我们再次订阅时,我们会得到再次出现同样的错误。
还有其他解决方案吗?