Tengo problemas para desestructurar un objeto que se devuelve desde la API de búsqueda en mi clase Aztro.
He intentado varias formas de desestructurarlo al azar sin éxito....
Si lo devuelvo en lugar de iniciar sesión en la consola, ¿cómo accedo? Consulte el código y los comentarios para obtener más aclaraciones sobre mis preguntas.
La razón por la que quiero hacer esto es porque la API solo devolverá un signo del zodiaco a la vez.
class Aztro { constructor(sign){ this.sign = sign } getData(){ return fetch('https://example/?sign=' + this.sign + '&day=today', { method: 'POST' }) .then( response => response.json() ) .then( data => { console.log(data) // how do I destructure this if it's returned and not just console.log() }) } } let aries = new Aztro('aries') // Can pass in zodiac signs to fetch data let aquarius= new Aztro('aquarius') aries.getData() // this logs the json data in the console.... // EDIT this is how I tried to destructure it const {description} = aries const {description} = aries.getData() // this returns Object promise when i tried to output it to the dom const {description} = AztroPuede acceder a los datos obtenidos de dos maneras:
1- usando una cadena de promesas, así:
aries.getData().then(data => console.log(data)) 2- usar async/await await para obtener datos. El punto importante de usar async/await es que debe llamar a la palabra clave await justo dentro de una función asíncrona (la razón por la que definí la función de la app en el siguiente código) como esta:
class Aztro { constructor(sign){ this.sign = sign } async getData(){ const response = await fetch('https://example/?sign=' + this.sign + '&day=today', { method: 'POST' }) const data = await response.json(); return data; } } async function app(){ let aries = new Aztro('aries') // Can pass in zodiac signs to fetch data let aquarius= new Aztro('aquarius') const data = await aries.getData(); console.log(data); } app();