此问题在此处已有答案:
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference(7个答案)
3天前关闭。
此帖子已于3天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
我想全局存储从Axios获取的数据,因为我想在多个函数中使用它。当我尝试在调用data()方法的函数内控制台时,我会按预期获得数据。但是当我尝试在函数外控制台数据时,我会将其设置为“undefined",尽管我在函数外全局定义了resp
有谁能告诉我如何全局存储数据或在其他函数中存储数据吗?我可以得到变通方法来获取函数外的数据吗?
let resp;
const data = () =>{
return axios.get(`http://localhost:3000/s/api/v1/events/data?`)
}
async function data1(){
resp = await data()
}
data1()
console.log(resp)
字符串
两处的预期数据如下
{
test1233: [ 'abc', 'def' ],
test1222: [],
dadad: [ 'adc', 'derf' ],
test123: [ 'abc', 'def' ],
test12: [],
dadadaa: [ 'adc', 'derf' ],
}
型
1条答案
按热度按时间des4xlb01#
你的函数是
async
(它返回一个Promise)。你必须等待Promise完成,例如。字符串
或
型
(same你已经在你的函数中做的事情:你等待axios调用的Promise)。
也就是说,通过异步函数填充全局状态几乎肯定是徒劳的,因为您无法真正知道函数何时完成。