En utilisant fetch () et l'API ticketmaster, j'essaie d'accéder à [[PromiseValue]] dans le journal, mais je continue à ne pas être défini.

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))
0
Rob 4 nov. 2019 à 22:37

1 réponse

.then(response => console.log(response.json())) renvoie undefined car la méthode console.log ne renvoie aucune valeur;

Mettez à jour votre code pour utiliser la valeur réelle:

Option 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))

Option 2:

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

Si vous souhaitez en outre utiliser les données renvoyées par l'API, vous devez comprendre quelle est la forme des données et définir ce que vous voulez en faire. En regardant rapidement leurs documents, si vous souhaitez obtenir le nom du premier événement renvoyé dans votre requête, vous pouvez remplacer .then(data => console.log(data)) par

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

OU

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

OU

.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
0
peinearydevelopment 4 nov. 2019 à 20:54