在带有Redux的ReactJS中避免竞争条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在带有Redux的ReactJS中避免竞争条件相关的知识,希望对你有一定的参考价值。
我从社区中获得了一些关于如何在带有Redux的ReactJS中防止竞争条件的指导。
[假设两个人正在查看相同的记录,并且两个人都希望对其进行更改,那么应该采取什么样的行动流程?我不确定如何使用Google查询此查询,因此我决定要求社区为我指出正确的方向。
最初,我以为如果执行setState并将其保存到数据库中,它将在其他用户的眼中自动刷新(尽管我无法确认),否则我将如何锁定该项目以进行更改,以使其他用户无法操纵价值?
答案
您可以将websockets与react redux一起使用。如果user A
正在查看记录,请向服务器发送一条消息以锁定记录。然后通过Websocket向当前正在查看该消息的其他订阅用户广播locked
消息。用户收到locked
Websocket消息后,请更新react / redux状态以显示适当的状态。
关于竞争条件,可能会发生这种情况,需要根据用例在服务器上进行处理。例如,如果user A
的请求到达第一个,User B
的请求到达第二个,并且如果您希望优先选择第一个用户,则锁定资源记录,但仅将访问权限设置为true
。 User A
停止编辑后,请解除锁定。
如果您想使websocket消息监视部分成为react组件之外的一个单独的问题,您可以查看redux中间件user A
。
以上是关于在带有Redux的ReactJS中避免竞争条件的主要内容,如果未能解决你的问题,请参考以下文章
带有 Redux 的 ReactJS 在 SVG 组件上显示引导工具提示