1. Оператор await можно использовать только в
асинхронных функциях
2. Блок return у вас не валидный.
interface FetchNewsDataSucceededAction {
type: typeof FETCH_NEWS_DATA_SUCCEEDED;
payload: News[];
}
interface FetchNewsDataFailedAction {
type: typeof FETCH_NEWS_DATA_FAILED;
payload: MappedError;
}
type NewsActionTypes = FetchNewsDataSucceededAction |
Action<typeof FETCH_NEWS_DATA_REQUEST> |
FetchNewsDataFailedAction;
const fetchNewsDataRequest = (): NewsActionTypes => ({
type: FETCH_NEWS_DATA_REQUEST,
});
const fetchNewsDataSucceeded = (payload: News[]): NewsActionTypes => ({
type: FETCH_NEWS_DATA_SUCCEEDED,
payload,
});
const fetchNewsDataFailed = (payload: MappedError): NewsActionTypes => ({
type: FETCH_NEWS_DATA_FAILED,
payload,
});
export const fetchNewsData = (): : ThunkAction<Promise<void>, {}, {}, AnyAction> =>
async (dispatch: ThunkDispatch<{}, {}, NewsActionTypes>): Promise<void> => {
try {
const { data } = await Axios.get(`https://api.dtf.ru/v1.6/news/default/recent?count=1`);
dispatch(fetchNewsDataSucceeded(data));
} catch (error) {
dispatch(fetchNewsDataFailed(mapAxiosError(error)));
}
};