前端知库

怎样避免加载、成功和失败状态互相矛盾?

参考答案

多个独立布尔值容易形成无意义组合,例如同时 loading、success 和 error。先列出允许的业务状态,再定义各状态能够接收的事件和转换,可以减少互相矛盾的界面。

简单流程可以用可辨识联合或枚举状态表达,不一定需要专门状态机库。复杂流程还可能包含并行区域、超时和取消,这时应先画出转换关系,并明确旧请求结果是否还能更新当前状态。

派生信息尽量从现有状态计算,避免重复存储导致不同步。状态机只是表达工具,不能替代业务边界设计;提交幂等、服务端权限和网络恢复仍需要在相应层处理。