【发布时间】:2021-10-28 04:19:27
【问题描述】:
在尝试读取我通过 .then() 传递的数组时遇到问题,当我这样做时,我只是得到一个错误,即数组未定义,如果我尝试在第一个 .then() 中记录它,则有点正确显示我在想这种功能可能最适合此时的异步/等待功能.....但这与仅添加 .then() 不同,但我不确定如果有办法我可以在不使用逻辑的情况下解决这个问题:P
希望有一些见解,欢迎提出建设性的批评:)
componentDidMount(){
fetch(`https://api.nasa.gov/DONKI/CMEAnalysis?startDate=${this.state.time[0]}&endDate=${this.state.time[1]}&mostAccurateOnly=true&speed=500&halfAngle=30&catalog=ALL&api_key=${process.env.REACT_APP_APIKEY}`)
.then(response => response.json())
.then((data) => {
this.setState({coronaData:data})
const dataRadar = {
labels: ["speed", "halfAngle", "longitude", "latitude"],
datasets: [
{
label: data[0].associatedCMEID,
backgroundColor: "rgba(194, 116, 161, 0.5)",
borderColor: "rgb(194, 116, 161)",
data: [65, 59, 90, 81]
},
{
label: data[1].associatedCMEID,
backgroundColor: "rgba(71, 225, 167, 0.5)",
borderColor: "rgb(71, 225, 167)",
data: [65, 59, 90, 81]
}
]
}
})
.then((dataRadar)=>{
console.log(dataRadar) //getting undefined when logging here
this.setState({dataRadar:dataRadar})
})
}
【问题讨论】:
-
dataReader是在then函数中定义的,但它什么也没做,所以它被丢弃了。如果你想让它去下一个then,return它。 -
这能回答你的问题吗? Promise returns undefined
-
@HereticMonkey 是的,做到了!非常感谢
标签: reactjs async-await react-hooks