es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿El valor devuelto por JS es undefined?

Estoy tratando de devolver el valor itemIDsList pero aparece como ‘undefined’ en la consola?

function getAllData() {
    fetch("JSONitemIDsList.json")
    .then(response => response.json())
    .then(data => {
        var itemIDsList = data.ids
    })
    return itemIDsList
}

var itemIDsList = getAllData()
console.log(itemIDsList)

Archivo JSON:

{
    "ids": [
        "sw0001a",
        "sw0001b",
         ....
         ...
         ..
         .
]}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema es que la variable itemIDsList está definida dentro de la función getAllData(), y no es accesible fuera de ella. Por lo tanto, cuando intentas acceder a ella fuera de la función, devuelve undefined.

    Para solucionar este problema, puedes modificar la función getAllData() para incluir una declaración return dentro del segundo bloque .then() donde se define itemIDsList. Esto asegurará que el valor de itemIDsList se devuelva a la función que llama, y se pueda asignar a una variable como itemIDsList en este caso.

    Aquí tienes una versión actualizada del código:

    function getAllData() {
      return fetch("JSONitemIDsList.json")
        .then(response => response.json())
        .then(data => {
          var itemIDsList = data.ids
          return itemIDsList
        })
    }
    
    var itemIDsList = getAllData()
    console.log(itemIDsList)
    

    Ahora, la función getAllData() devuelve una Promesa que se resuelve con el valor de itemIDsList. Luego puedes usar .then() para acceder al valor resuelto y mostrarlo en la consola:

    getAllData().then(itemIDsList => console.log(itemIDsList))
    

    Esto mostrará correctamente el valor de itemIDsList en la consola.

Comments are closed.