请原谅我的无知,但我对JavaScript还不满意。我正在尝试从GitHub获取公共用户数据,并将其显示在我的个人档案中。目前,我有以下代码:
getData(url) {
return fetch(url);
}
const userData = getData("https://api.github.com/users/userName");
userData
.then((response) => response.json())
.then((response) => console.log(response))
.catch((error) =>
console.log("There was an error fetching the data: " + error)
);
console.log(userData)
我得到的响应是带有用户数据的JSON,但是当我console.log(userData)
时得到Promise { <state>: "pending" }
作为响应。
我还可以看到初始响应中有一个ID,但是当我console.log(userData.id)
时我得到undefined
。
我已经阅读了GitHub API文档,并在Promises上观看了一些视频,但是我似乎无法使我的代码正常工作。
感谢您抽出宝贵的时间来研究此问题,对此深表感谢!
答案 0 :(得分:3)
这是因为userData是一个承诺。如果您尝试使用异步/等待(提供文档here),则可以同步获取数据。
const getData = async (url) => {
try {
const data = await fetch("https://api.github.com/users/:user_name");
console.log(data.json());
return data;
} catch (e) {
console.log("There was an error fetching the data: " + error)
}
}