Использование Fetch для возврата данных пользователя GitHub - PullRequest
0 голосов
/ 30 декабря 2018

Простите за невежество, я не очень хорош с 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" } в качестве ответа.

Также,Я вижу, что в первоначальном ответе есть идентификатор, но когда я console.log(userData.id) получаю undefined.

, я прочитал документацию по GitHub API и посмотрел несколько видео об обещаниях, но не могупохоже, мой код работает правильно.

Спасибо, что нашли время взглянуть на это, и любая помощь с этим очень ценится!

1 Ответ

0 голосов
/ 30 декабря 2018

Это потому, что userData - это обещание.Если вы попытаетесь использовать async / await (документация доступна здесь ), вы сможете синхронно получать данные.

 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)
   }
 }
...