【发布时间】:2017-08-22 04:34:00
【问题描述】:
API 请求周期操作的推荐方式是什么?
即:我通常有 3 个步骤
- 请求已启动(等待响应)
- 请求成功完成(并返回一个值)
- 请求失败(或返回错误)
我可以将这些步骤建模为 3 个动作
RequestDidStartAction-
RequestDidFinishWithSuccessAction(这里我将值作为操作的属性) -
RequestDidFinishWithFailureAction(这里我会将错误作为操作的属性)
或者我可以将其建模为一个具有枚举的操作:
struct RequestAction: Action {
let state: AsyncRequestState<Value, Error>
}
enum AsyncRequestState<S, F> {
case waiting
case success(S)
case failure(F)
}
这两种方式哪一种更好?还是有更好的选择?
Ps.:我正在使用 ReSwift,但我认为这个问题适用于任何 Redux 实现。
【问题讨论】: