Коммуникация на основе действий: как получить ответ на определенное действие? - PullRequest
0 голосов
/ 02 апреля 2020

Проблема:

В пользовательском интерфейсе у меня есть действие, которое называется «подключиться к комнате». Я отправляю это, и тогда слушатель действия фактически соединится с комнатой. По окончании будет отправлено сообщение «подключено к комнате» или «ошибка при подключении к комнате».

Это избыточность на стороне клиента с побочными эффектами. Мне было интересно, каков наилучший способ для пользовательского интерфейса, который инициировал действие «подключиться к комнате», чтобы получить ответ «подключен к комнате» или «ошибка подключения к комнате»?

  • A) Должен ли пользовательский интерфейс прослушивает все действия? Я добавлю идентификатор корреляции к исходному действию, а затем подожду совпадения с тем же идентификатором корреляции. Затем отправляет новое действие, чтобы обновить его состояние в Redux. Обратите внимание, что я разделяю действия. Таким образом, он больше не связан с действием «подключиться к комнате». Он более модульный.
  • B) Пользовательский интерфейс не должен знать о том, что произойдет, но редуктор будет прослушивать это действие и изменять состояние пользовательского интерфейса. Это не очень модульно.
  • C) У вас есть идея получше?

Пример кода того, что я хотел бы: const result = await store.dispatch(action)

...