@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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы