Я работаю над приложением React Redux. У меня есть действие, в котором я вызываю служебную функцию перед отправкой действия.
import GetDataFromAPIs from "../utils/menu-creator";
export const UPDATE_DATA = 'UPDATE_DATA';
export const updateData = () => {
const newData = GetDataFromAPIs();
return{
type: UPDATE_DATA,
payload: newData
};
};
И вот что GetDataFromAPIs. js выполняет свободно:
import React from "react";
import axios from "axios";
const apiOneData = axios.get('/api/a');
const apiTwoData = axios.get('/api/b');
const GetDataFromAPIs = () => {
axios.all([apiOneData, apiTwoData]).then(axios.spread((...responses) => {
var firstDataSet = responses[0].data
var secondDataSet = responses[1].data;
var dataObject = [];
dataObject.push(firstDataSet);
dataObject.push(secondDataSet);
return dataObject;
})).catch(errors => {
console.log("There was an error.");
})
}
export default GetDataFromAPIs;
Но при запуске приложения newData устанавливается как undefined . Я пытаюсь пройтись по GetDataFromAPIs. js, но он прослеживает до ax ios .all, а затем выходит из функции. Я не вижу ошибок в консоли.
Итак, я предполагаю, что действие отправляется до разрешения двух топоров ios .all. Я думал, что это будет синхронно (newData вернет данные, а затем будет отправлено действие). Я делаю это неправильно?