Mik*_*378 6 javascript ajax race-condition reactjs redux
我最近了解了 Redux。我很好理解这个概念,但我没有在官方文档
中弄清楚这一行:
由于所有更改都是集中的,并且按照严格的顺序一一发生,因此没有需要注意的微妙竞争条件。
Redux 如何保证没有微妙的竞争条件?
事实上,我可以想象这个场景(按顺序):
因此,操作创建者分派将按顺序应用,但这些操作创建者的实现可能不会按顺序应用,可能会导致不确定的代码。
如何计算报价?
我可以理解,使用 Redux,可以对已调度操作的历史记录进行某种跟踪(有助于理解运行时的程序工作流程),但是这些操作的实际实现又如何呢?
我刚刚遇到了@DanAbramov 本人提出的这一点,非常有意义。
我认为它很好地回答了我的OP。
要点是,只要操作的分派保持同步(尽管操作创建者的内部流程可能根本不同步),就可以通过建立和记录来快速找出竞争条件(或有关非确定性的其他问题)已调度操作的历史记录。
特别是很容易重现“奇怪”的状态,然后找出如何避免它(例如Event-Sourcing)。
如果没有任何同步、可见的时间点,就很难掌握发生了什么;这就是 Redux 带来好处的原因。
正如文档所述,Redux 不会避免竞争条件,但确实会大大减少微妙(难以分析)的竞争条件。
| 归档时间: |
|
| 查看次数: |
2540 次 |
| 最近记录: |