Попытка получить данные из API, используя fetch - PullRequest
0 голосов
/ 04 ноября 2019

Используя fetch () и API-интерфейс ticketmaster, я пытаюсь получить доступ к [[PromiseValue]] в журнале, но получаю неопределенное значение.

const API_key = '1234'

fetch(`https://app.ticketmaster.com/discovery/v2/events.json?size=1&apikey=${API_key}`)
      .then(response => console.log(response.json()))
      .then(data => console.log(data))

1 Ответ

1 голос
/ 04 ноября 2019

.then(response => console.log(response.json())) возвращает undefined, поскольку метод console.log не возвращает никакого значения;

Обновите код, чтобы использовать фактическое значение:

Опция 1:

fetch(https://app.ticketmaster.com/discovery/v2/events.json?size=1&apikey=${API_key})
  .then(response => {
      var response = response.json();
      console.log(response);
      return response;
  })
  .then(data => console.log(data))

Вариант 2:

fetch(https://app.ticketmaster.com/discovery/v2/events.json?size=1&apikey=${API_key})
  .then(response => response.json())
  .then(data => console.log(data))

Если вы хотите использовать данные, возвращенные из API, вы должны понимать, чтоФорма данных и определить, что вы хотите с ней делать. Если вы хотите быстро просмотреть их документы, если вы хотите получить имя первого события, возвращенного в вашем запросе, вы можете заменить .then(data => console.log(data)) на

.then(data => console.log(data._embedded.events[0].name)) // logs it to the console

ИЛИ

.then(data => alert(data._embedded.events[0].name)) // creates an alert with the name in it

ИЛИ

.then(data => {
  var ele = document.createElement('div');
  ele.innerHTML = data._embedded.events[0].name;
  document.querySelector('body').appendChild(ele);
}); // creates a div with the name in it and appends it to your page
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...