@DiMoNTD

Какой правильный подход для реализации асинхронных действий в парадигме Redux?

Лирика
Решил применить для реализации приложения подход Flux, и взял за основу реализацию Redux + React.
Много прочитал про то, где описывается бизнес-логика, про чистые функции в reducers и actions, про проектирование структуры хранилища (store, state), и самое главное - проблема асинхронные вызовы. В связи с этим есть небольшой бардак в голове, поэтому хочу немного разобраться в следующем вопросе.

Суть
Есть приложение, которое прежде, чем начнет свою работу, должно инициализироваться. Под инициализацией я имею ввиду ряд действий со стороны приложения, после выполнения которых оно считается проинициализированным.
Соответственно у приложения появляется некое состояние isInitialized, которое в начале установлено как false. И чтобы это состояние перевести в true, необходимо выполнить, к примеру, несколько действий:
- Получить первый конфиг из одного источника
- Получить второй конфиг из второго источника
- Объединить результат этих конфигов в один
- Сказать приложению, что теперь мы инициализировались и у нас есть все данные, для отображения первой страницы.
- Или подпункт, сказать приложению что мы не смогли инициализироваться и далее продолжать работу невозможно.

Вопрос: Каким образом лучше это реализовать?

На чем ступор:
Ступор в правильном подходе
- где реализовать логику ожидания двух запросов и объединению конфигов
- как правильно реализовать работу с двумя асинхронными вызовами API сервиса, от результатов которых зависит одно свойство состояния.
  • Вопрос задан
  • 625 просмотров
Решения вопроса 1
@DiMoNTD Автор вопроса
В итоге использовал библиотеку redux-saga.
https://github.com/yelouafi/redux-saga

Понравилось в ней то, что можно подписаться на определенное действие, выполнить цепочку задач и вернуть новое состояние. Не скажу, конечно, что разобрался с пол пинка, но в целом помогли пару статей и офиц. документация:
https://shift.infinite.red/using-redux-saga-to-sim...
yelouafi.github.io/redux-saga/docs/api/index.html#...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Amazing-Space-Invader
@Amazing-Space-Invader
веб-хипстер
Конфиги нужно получать синхронно или асинхронно? В любом случае получение лучше реализовать в actions. Какие-то манипуляции тоже. Диспатчить их тогда, когда понадобится. Вот туториал по асинхронной подгрузке json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 15:28
10000 руб./за проект
29 мар. 2024, в 15:11
50000 руб./за проект
29 мар. 2024, в 15:06
50000 руб./за проект