【发布时间】:2016-09-18 02:16:09
【问题描述】:
我试图弄清楚在处理 RxSwift 流时如何在 ViewController 层重试 API 调用。我知道我可以将我的错误包装在Element 中,或者我可以返回一个流Error。无论哪种情况,我都不清楚如何“重试”用户自行决定的操作(例如,在发出警报之后)。
如果我包装了错误,我如何/应该如何“向下”传达给 API 层以尝试重试?如果我不包装错误,我有两个问题:
1) 如何使retry 以用户对警报的响应为条件?和
2) 我如何/应该如何“重新初始化”流?
我唯一能想到的就是传回一个带有错误的“重试主题”,并让视图控制器通过在相关的 observable 上发出一些东西来指示重试请求(即为主题分配一个值) 这将与 API 流相关联。然而,这似乎非常令人费解。
更一般地说,我会感谢任何关于使用流/可观察对象处理应用程序错误的有用文献的参考。我觉得我对 RxSwift 对象和运算符以及如何处理“快乐路径”情况有很好的了解,但我不清楚如何在持续运行的应用程序的上下文中稳健地处理错误。
【问题讨论】:
标签: ios uiviewcontroller error-handling rx-swift reactivex