你能帮助我吗?我需要从axios请求响应中提取一些数据,但我不知道如何做到这一点。
下面是我代码:
let result;
let config = {
method: 'get',
maxBodyLength: Infinity,
url: urlToSend,
headers: {
'Authorization': 'Bearer ' + token,
}
};
axios.request(config)
.then((response) => {
//console.log(JSON.stringify(response.data));
result = response.data;
})
.catch((error) => {
console.log(error);
});
console.log(result); //I NEED THE DATA HERE <-
但结果总是:[]
谢谢你的帮助
1条答案
按热度按时间xvw2m8pv1#
问题是
console.log(result)
在响应准备好之前被执行,并且在.then(...)
回调中的代码被执行之前被执行。要让它等待响应准备就绪并将值分配给let result;
变量,您必须执行以下操作之一:1.像这样在
axios.request(...)
处添加await
关键字,但请注意,顶级await
语句在整个平台上都不受支持,但只要你在一个aprc函数中,你就可以了:1.或者
.then(...)
回调函数中的console.log(...)
,或者更好的方法是继续.then
链:1.或者可能最好和最可读的事情就是充分利用ES6的javascript/await语法: