Существует больше библиотек для обработки вызовов асинхронных операций с избыточностью.Я использую redux-thunk, другая известная библиотека - redux-saga.С помощью redux thunk вы добавите промежуточное программное обеспечение в redux, и таким образом вы сможете создавать создателей асинхронных действий, которые возвращают функцию, и они могут вызывать других создателей действий в зависимости от результата асинхронного вызова.
Вы добавляете промежуточное ПОтаким образом:
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index';
// Note: this API requires redux@>=3.1.0
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
И создатель ваших действий будет выглядеть примерно так:
export function requestDataList() {
return function (dispatch: Function, getState: Function) {
return getDataList().then(resp => {
dispatch(dataListReceived(resp.data));
}).catch(error => {
dispatch(showPopup(title, error.message));
});
};
}
Так что, если ваш getDataList повторно выполнит обещание axios, в случае успеха он вызовет действие с результатом,При ошибке он может вызвать диалог ошибки.