【发布时间】:2017-09-14 17:00:48
【问题描述】:
在我的 react-redux 应用程序中,我有一个动作创建器,它进行 4 个服务器调用,前三个调用是异步的,然后最后一个等待第三个调用的响应。
假设有人在第 3 次响应到来之前更改了路线,则不会进行第 4 次调用。如何确保不会发生这种情况?
在 actioncreator 完成工作之前,我不应该允许更改路线(用户不会喜欢这样)。或者,即使路线改变,我也应该允许第四次呼叫发生,从用户的角度来看,这似乎是一个合理的解决方案。我不知道如何编写任何解决方案,请提出意见。
注意:可以从顶部的导航栏更改路线。
【问题讨论】:
-
您是否使用任何库(如 thunk/saga 等)进行服务器调用?如果没有,我建议您看一下 redux saga,因为它可以简化异步调用,并且可以使用 saga 效果轻松解决您的情况。 (虽然最初的学习曲线会有点困难)。
-
我已经用过saga,但不知道saga的效果。
-
我不确定我是否正确理解了您的问题。您想知道并行执行 3 个调用和第 4 个调用以等待第 3 个调用完成的代码吗?或者您想知道如何在通话进行时阻止您的用户更改路由? (这可以通过在您的 api 调用运行时向用户显示进度对话框来轻松防止)
-
我想知道如何在通话进行时阻止用户更改路由
-
function doSomething { dispatch(A()); dispatch(B()); dispatch(C()); dispatch(D()); }
标签: javascript ajax reactjs redux react-router