【发布时间】:2015-02-22 21:38:01
【问题描述】:
我正在编写一个使用通量设计原则的简单应用程序,以便更好地理解底层机制。为了提供增强的体验,用户更改会立即记录到本地存储,从而以零延迟更新界面。同时,向服务器分派一个异步请求;如果服务器发生故障,本地存储将从服务器重新加载。
但是,我不确定如何最好地处理由于服务器响应缓慢而有多个异步请求待处理的情况。在这种情况下,处理故障似乎要复杂得多。例如,假设有三个待处理的异步请求(每个状态变化用户交互一个)。第一个成功了,第二个失败了。我应该取消第三个请求吗?我如何从第二个请求而不是第三个请求回滚更改。
如果可能的话,我想避免这种复杂性。通量是否提供了一种机制来处理这种情况?我意识到我可以在异步请求挂起时锁定 UI,以防止多个请求排队,但我不愿意介绍这种方法会降低用户体验。
编辑: 有些人相当质疑多个异步调用的问题是否特定于通量。我没有提到的是,我的担忧是特定于 guidance 的存储/调度程序仅执行同步代码。
【问题讨论】:
-
除了作为一个糟糕的用户体验之外,阻止 UI 以防止同时发生多个异步操作的场景是一种糟糕的代码气味。这是一种耦合形式;您从视图外部(即在 Action Creator 中)对视图做出假设。
标签: asynchronous reactjs flux