Tengo el código igual al de la clase pero me lanza el error “id is undefined”, justo dentro de la función onError. He intentado revisarlo...

Pregunta de la clase:
Promesas
Hèctor Mora

Hèctor Mora

Pregunta
student
hace 5 años

Tengo el código igual al de la clase pero me lanza el error “id is undefined”, justo dentro de la función onError. He intentado revisarlo con el debugger, pero no encuentro el problema. Dejo el código aquí:

const API_URL = "https://swapi.dev/api/"; const PEOPLE_URL = "people/:id/"; const opciones = { crossDomain: true} function obtenerPersonaje(id) { return new Promise ((resolve, reject) => { const url = `${API_URL}${PEOPLE_URL.replace(":id", id)}`; $ .get(url, opciones, function (data) { resolve(data) }) .fail(() => reject(id)) }) } function onError(id) { console.log(`Sucedió un error al obtener el personaje ${id}`) } obtenerPersonaje(2) .then(function (personaje) { console.log(`El personaje ${id} es ${personaje.name}`) }) .catch(onError)
4 respuestas
    Yosef Enmanuel Blandin Rios

    Yosef Enmanuel Blandin Rios

    student
    hace 5 años

    Buenas, pareciera que el error es de sintaxis, la palabra reservada function esta pegada en el nombre de las funciones, prueba separandolas y me avisas como te va.

    function obtenerPersonaje(id); function onError(id);```
    Sneyder Barreto

    Sneyder Barreto

    student
    hace 5 años

    ¡Hola! El error está aquí:

    console.log(`El personaje ${id} es ${personaje.name}`);

    Al intentar acceder a

    id
    (que no es visible en este scope), se genera un error y por eso te manda al catch. La solución sería simplemente quitar el
    ${id}
    y debería funcionar sin problema. Un saludo.

    Hèctor Mora

    Hèctor Mora

    student
    hace 5 años

    Bien. Por un lado, gracias por los comentarios. Me ayudan a no quedarme "encallado". En relación al problema de sintaxis, es solo al copiar el código que queda pegado. En el original está despegado. Por otro lado, cambié el id por 1 y se solucionó. Muchas gracias!

    Paulina de los Angeles Espejo Bacadare

    Paulina de los Angeles Espejo Bacadare

    student
    hace 5 años

    Hola Héctor, a mi me sucedía el mismo error, no había indexado el script de jquery en el html

    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous" ></script>
Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.

Fundamentos de JavaScript 2018
Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.