Реакция setState: синхронизированы ли несколько обратных вызовов? - PullRequest
0 голосов
/ 28 августа 2018

Скажите, что есть такой случай: В состоянии есть список, который соответствует нескольким строкам в таблице на интерфейсе пользователя. Существует несколько вызовов API, по одному для каждого элемента (строки), которые будут получать последний статус и обновлять один элемент в списке.

В таком случае я могу понять, что метод обратного вызова будет лучше, чем прямой вызов setState. Однако я до сих пор не знаю, будут ли синхронизированы множественные вызовы обратного вызова. Например, случится ли следующая ситуация?

  1. callback 1 читает список
  2. callback 2 читает список
  3. список обратных вызовов 1 (0)
  4. список обновлений обратного вызова 2 (1)
  5. обратный вызов 1 пишет обратно
  6. обратный вызов 2 пишет обратно

В этом случае обновление с 1 может быть потеряно, что типично для чтения-изменения-записи.

1 Ответ

0 голосов
/ 28 августа 2018

Я до сих пор не совсем понимаю вашу проблему, возможно, если бы вы могли предоставить какой-то код, было бы лучше.

Но если вы намеревались вызывать функцию выборки несколько раз и устанавливать состояние сразу после ее получения, тогда вы можете с уверенностью предположить, что setState не должен переопределять другой, независимо от того, выполнялись ли ваши вызовы асинхронно или синхронно.

Но в любом случае вам не следует, как клиенту, отправлять столько запросов одновременно, вы должны запрашивать все данные с сервера

...