问题描述
我正在尝试解析一个 JSON 数组:
{
"data":[
{
"dates":"02/01/2021-02/14/2021","profit":23002,"revenue":230
},...
]
}
我希望将此解析的 JSON 对象作为数据传递到 recharts 中,但是当我 console.log
返回 res.data
的函数时,它被读取为 undefined
。在下面的代码中,第一个控制台日志给了我数据,但第二个是未定义的。任何方向都会有所帮助。
const getData = () => {
axios.get(`https hidden for privacy reasons`)
.then(res => {
console.log(res.data)
return res.data
})
.catch((error) => {
console.log("Ran into error");
})
}
console.log(getData())
解决方法
axios.get
是一个带有回调的异步函数。这种类型的函数不返回数据 - 相反,数据只能在提供的回调范围内访问,函数即在
res => {
console.log(res.data)
return res.data
}
匿名函数。
请注意,您的 getData
函数不包含 return
语句,因此将返回 undefined
值。
您希望 getData
返回 Axios get 的结果:
const getData = () => {
return axios.get(`https hidden for privacy reasons`)
.then(res => {
console.log(res.data)
return res.data
})
.catch((error) => {
console.log("Ran into error");
})
}
然后你需要Promise.then
(或await
)结果,因为getData
是一个承诺:
getData().then(result => {
console.log(result);
});