Rodolfo Malpica Delgado
PreguntaEstoy intentando hacer lo mismo con la PokeAPI e intento que imprima el nombre y el peso de los Pokémon, pero me aparecen como undefined. ¿Alguna idea de por qué está pasando esto?
const API_URL = 'https://pokeapi.co/api/v2/' const PEOPLE_URL = 'pokemon/:id' const opts = { crossDomain: true } const onPeopleResponse = function (pokemon) { console.log(`¡Hola! Yo soy ${pokemon.name} y mi peso es de ${pokemon.height}kg.`) } function obtenerPersonaje(id) { return new Promise ((resolve, reject) => { const url = `${API_URL}${PEOPLE_URL.replace(':id', id)}` $ .get(url, opts, function (data) { resolve(data) }) .fail(() => reject(id)) }) } async function obtenerPersonajes () { var ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var promesas = ids.map(id => obtenerPersonaje(id)) try { var personajes = await Promise.all(promesas) console.log(personajes) onPeopleResponse(personajes) } catch (id) { onError(id) } } obtenerPersonajes() function onError(id){ console.log(`Sucedió un errior al obtener el personaje ${id}`) }
Jairo Ramirez Castaño
A ese "personajes" le debes pasar un .map para poder acceder al nombre y altura del pokemon (height = altura).

Luis Lira
Promise.all te regresa un arreglo con todos los resultados y eso es lo que estás pasando como parámetro, tendría que ejecutar un loop o un map y luego ejecutar el console.log en la función de
onPeopleResponse