3 回答

TA贡献1820条经验 获得超3个赞
正确的做法是等待 promise 完成,因为它在函数获取数据之前正在打印,这就是为什么后者应该是async,并且应该在它之后完成打印。这可以通过以下方式完成:
var url = "https://pokeapi.co/api/v2/pokemon/pikachu";
async function getJSON(x){
let response = await fetch(x);
let data = await response.json();
return data;
}
getJSON(url).then(data => console.log(data));

TA贡献1936条经验 获得超7个赞
你的提取没问题。但由于它是异步调用,因此您的 console.log 会在 getJSON 函数有时间返回其响应之前执行。如果您在函数中使用 console.log(data)(在您的 return data 语句之前),您会注意到数据正在按预期返回

TA贡献2019条经验 获得超9个赞
稍微更正了您的代码,如下所示:
fetch('https://pokeapi.co/api/v2/pokemon/pikachu')
.then(function (response) {
return response.json()
})
.then(function (data) {
console.log('data', data)
})
添加回答
举报