深入理解Flux架构中的异步操作与存储状态管理
1. 异步操作的挑战与解决方案
在Flux架构中,异步操作是一个常见且复杂的问题。当使用多个 asyncAction() 函数组合 action() 时,每个函数都会触发一个更新轮次,这就可能导致更新轮次的顺序出现竞争条件。因为不同的 asyncAction() 可能服务于不同的存储,所以不能将它们组合成一个向多个API端点发出请求的单一动作创建器。
为了解决这个问题,我们可以让动作创建器函数返回Promise。这样做的好处是可以组合跨越多个存储的更复杂的异步行为,并且能确保更新轮次的顺序一致。
1.1 不使用Promise进行同步
Flux架构的一个优点是很多操作是同步的。当调用调度器并传入新动作和新有效负载时,调用会阻塞直到更新轮次完成,UI会反映当前的状态。但在处理异步行为时,情况就不同了,特别是在Flux架构中,异步行为通常被严格限制在动作创建器函数中。
一个动作创建器函数可以将多个异步资源的解析值组合成一个单一的动作和有效负载,然后存储内的逻辑可以决定如何使用这些数据并更新其状态。但当需要跨多个存储和功能同步资源时,这种方法就会失效。
1.2 返回Promise
动作创建器函数可以返回Promise,这样调用者就可以知道更新轮次何时完成。以下是一个返回Promise的动作创建器函数示例:
// The action identifier...
export c
超级会员免费看
订阅专栏 解锁全文
7

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



