Если кратко - в actions.
Если подробно, то:
Асинхронный вызов делается с участием middleware в actions. Таков ответ =)
По полочкам: обычно используется
redux-thunk, код которого очень прост: если actionCreator возвращает ФУНКЦИЮ - то нужно прокинуть в функцию store и dispatch аргументами. Таким образом, из дествий (actions) вы сможете выполнять асинхронные запросы.
Подробно
здесь
Так же, там весь мини учебник по redux.
---
Для роутинга в ответе на асинхронный запрос - придется использовать еще один middleware, об этом подробно будет написано
здесь, раздел:
подключаем redux. В данный момент уже почти все закончил, на неделе опубликую.