React setState:是否同步了多个回调?

时间:2018-08-28 06:32:56

标签: javascript reactjs synchronization concurrentmodification

说有这种情况: 在此状态下,存在一个列表,该列表对应于UI上表中的多行。有多个api调用,每个项目(行)一个,将检索最新状态,并更新列表中的一个项目。

在这种情况下,我可以理解,回调方法比直接调用setState更好。但是,我仍然不知道回调的多个调用是否将被同步。 例如,是否会发生以下情况?

  1. 回调1读取列表
  2. 回调2读取列表
  3. 回调1更新列表(0)
  4. 回调2更新列表(1)
  5. 回调1回写
  6. 回调2回写

在这种情况下,从1开始的更新可能会丢失,这对于read-modify-write是典型的。

1 个答案:

答案 0 :(得分:0)

我仍然不清楚您的问题,也许如果您能提供一些代码会更好。

但是,如果您打算多次调用fetch函数并在到达状态时设置状态,那么应该安全地假设setState不应覆盖另一个,无论您的调用是异步还是同步完成。

但是无论如何,您不应该作为前端一次发送这么多请求,而应该从服务器请求所有数据