Позвольте мне объяснить вам поток здесь.
Сначала мы пришли сюда const data = queryData();
В queryData
функция у нас есть:
async function queryData(){
const query= await axios.get('...') <------------ first breakpoint ----------------
// ......
}
Когда это asyn c req нажата, код не останавливает свой поток, он продолжается. Следующее возвращаемое выражение выполнено.
return {
type:cst.RECEIVE_DATA,
payload:data // data is undefined at this moment
}
Тем временем ответ асин c возвращается. Мы последовательно выполняем следующие 3 оператора queryData()
function
const queryStatus = portNames.map(...);
const dataStatus= await Promise.all(queryStatus);
return dataStatus;
И теперь переменная data
обновляется.
Чтобы обеспечить правильный поток, вы можете написать что-то вроде этого:
export async function actionData() {
const data = await queryData();
return {
type:cst.RECEIVE_DATA,
payload:data
}
}
Я бы рекомендовал вам прочитать о async / await на MDN .