【发布时间】:2015-09-11 00:37:51
【问题描述】:
每隔一段时间,我都会遇到需要连续执行多个操作的情况。使用 Facebook 的 Flux 实现,这样做会导致抛出错误:“无法在调度过程中调度”。显然这个错误是有原因的,所以我想知道如何以不同的方式构建我的应用程序。
这是一个可能发生这种情况的示例场景:
- 用户尝试登录,但提供了错误的凭据
- 触发了名为
failedToAuth的操作- 名为
ErrorHandler的服务正在侦听failedToAuth操作- 根据错误,
ErrorHandler可能会将用户重定向到另一个页面或创建错误通知在第 4 种情况下,可能会触发另一个动作。为了 例如,它可能是
redirectToPage操作或createError行动。不幸的是,如果没有 抛出上述错误。
另一个例子:
- 应用程序首次加载时,需要检索一些状态数据。
- 它向服务器执行请求,并在检索结果时触发 3-4 个动作,每个动作都有一些用于检索的参数 数据。
- 多个商店可能正在监听这些操作,这些操作具有自己的域逻辑来处理检索到的数据。
再次抛出调度错误。我可以创建一个大型元动作 称为
serverResponse,它拥有所有数据,因此只需一个动作 而不是很多。但是,这似乎是tight coupling 的情况, 这将是另一个恶习。
那么解决需要触发顺序操作的情况的正确方法是什么?
注意:我知道我可以使用 setTimeout,但这样做只是为了解决因某种原因而存在的错误。
【问题讨论】:
标签: javascript flux