使用访存返回GitHub用户数据

时间:2018-12-29 23:29:28

标签: javascript async-await es6-promise github-api

请原谅我的无知,但我对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上观看了一些视频,但是我似乎无法使我的代码正常工作。

感谢您抽出宝贵的时间来研究此问题,对此深表感谢!

1 个答案:

答案 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)
   }
 }