Ответ 1
Пример немного принудительно, и он был создан с целью показать, как работает waitFor(). Аспект WebAPI в примере довольно искушен и действительно должен быть пересмотрен.
Однако, несмотря на то, что MessageStore.getCreatedMessageData(text)
передает значение в хранилище, оно все равно является получателем. Это не настройка данных в магазине. Это действительно используется как метод утилиты, и хорошая ревизия (запрос pull?) Заключается в том, чтобы переместить этот метод в модуль Utils.
Чтобы улучшить пример для реального мира, вы можете сделать пару вещей:
-
Вызовите WebAPIUtils из хранилища, а не из ActionCreators. Это нормально, если ответ вызывает другой ActionCreator и не обрабатывается путем установки новых данных непосредственно в хранилище. Важно, чтобы новые данные происходили с действием. Важно, как данные поступают в систему, чем то, как данные выходят из системы.
-
Кроме того, для сообщений могут потребоваться отдельные идентификаторы на стороне клиента и серверной стороне. Там может быть немного преимуществ, таких как управление оптимистичными визуализациями. В этом случае вы можете создать идентификатор клиентской стороны в модуле Utils и передать этот идентификатор вместе с текстом как отправленному, так и WebAPIUtils.
Все, что сказал, да, пример нуждается в пересмотре.