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 实现。