Flux 架构中的异步操作处理
1. 封装异步行为
在 Flux 架构中,更新轮次是同步的,那么异步代码该放在哪里呢?实际上,任何异步行为在完成后都会以某种方式更新系统状态,并与其他代码同步。在一些架构中,异步操作的调用比较随意,缺乏约束。
比如,Flux 更新轮次不应引发新的异步行为,因为更新轮次是同步的。因此,我们需要对异步行为进行封装,而动作创建函数在这方面表现出色,它能执行异步工作,并在异步部分完成后管理动作分发。以下是动作创建函数封装异步调用的可视化表示:
actionCreator()
async()
Action
actionCreator()
async()
Action
Dispatcher
将异步行为放在动作创建函数中有两个好处:
- 调用动作创建函数时无需考虑同步语义,这些都在函数内部处理。
- 所有异步行为都集中在一个架构层中,便于查找和维护。
2. 异步动作语义
动作创建函数在分发动作之前需要进行同步操作。一个动作创建函数通常包含两部分:异步调用(如果有的话)和实际的动作分发。其任务是将异步调用与 Flux 调度器同步,即在分发动作之前等待某种响应。
例如,下面是一个调用 API 加载用户对象列表的动作创建函数:
import dispatcher from '../dispatcher';
// 动作标识符...
export const LOAD_USERS = 'LOAD_USERS'
超级会员免费看
订阅专栏 解锁全文

1

被折叠的 条评论
为什么被折叠?



