Javascript является асинхронным c по своей природе. Итак, какие бы изменения вы ни делали внутри .then
, функция будет отражаться только внутри той же области.
Итак, все, что вы хотите сделать со значением агента, которое вы получаете от вызова API, должно выполняться внутри then
только функция.
let agents = [];
axios(config).then(function(response) {
agents = response.data;
console.log("agents", agents);
const mapAgents = agents.map(a => a.someProperty);
console.log(mapAgents);
// end of scope for the agent's value, it won't be accessible outside.
});
console.log(agents); // outputs []
// value of agent's won't be accessible here due to async nature. This line will get executed first and then.
asyn c -await
Если вы используете sh для синхронного выполнения какого-либо действия. Вы можете добиться этого, используя async-await
, это делает внутреннюю часть функции синхронной, сохраняя выполнение функции как асинхронное.
const getAgents = async function() {
let agents = []
const res = await axios(config) // thread will wait till the api call is completed
agents = res.data
// perform your action here
}
getAgents(); // this will now become asynchronous
Вы можете узнать больше о природе Javascript asyn c, здесь .