【发布时间】:2016-12-01 04:42:15
【问题描述】:
考虑以下情况:
当用户导航到页面时,会调度两个异步 Redux 操作以并行获取两组相关数据。如果这些获取中的任何一个失败,组件将检测到它,该组件将在下一个周期呈现错误组件,进而在挂载时调度 clearState 操作。
但是,其他操作仍有待解决/拒绝,并且会破坏干净状态。目标是在调用clearState 动作创建者时中断这个(最好是许多其他)未决异步动作。 AFAIK,未决的承诺无论如何都应该解决/响应。
我想到的第一件事是向每个减速器引入 INTERRUPTED 标志,但我不知道如何使用它来使以下 SUCCESS/ERROR 动作不影响/返回默认状态。
如何做到这一点,将复杂性保持在最低限度?
【问题讨论】:
-
你应该看看redux-saga。您可以通过取消任务来做到这一点。
-
Redux-saga 太棒了,它甚至有一个
race函数来做你想做的事
标签: javascript ajax asynchronous reactjs redux