0

Estoy tratando de obtener la respuesta del metodo AJAX $.get() fuera de la función (entorno global), pero no he podido hacerlo, utilizé localStorage pero este me ha traido problemas en distintas ocasiones al convertir los datos con JSON.stringify() y luego recibirlos con JSON.parse(). La manera que estoy buscando es que pueda hacer un callback para obtenerlo, pero si lo hago desde la función del metodo $.get("ruta", function getData()) : dice que la función está indefinida.

Ejemplo:

function getData(callback)
{
    $.get(ruta, function (response)
    {
        callback(response);
    })
}

var data = getData(function(response)
{
    console.log(response);
})

Pero incluso así tampoco seria lo correcto, porque igual estaría usando el valor dentro de otra función, la idea es tenerlo fuera de a función...

Gracias

Josbert
  • 890
  • 3
  • 16
Abdiel
  • 141
  • 12

1 Answers1

0

Bien, analizando tu pregunta, creo entender lo que deseas hacer. La verdad para llevar estos datos fuera de el callback tienes muchas opciones, por ejemplo puedes hacer lo siguiente:

 $.get(ruta, function (res)
   {
     window.ajaxData = res
   }
 )

Esto llevaría los datos a una propiedad del objeto window, mejor dicho una variable global que puedes usar desde cualquier parte de tu código. Ejemplo:

// Supongamos que necesitas pasar a una nueva variable, esos datos; desde cualquier parte de tu código
var newVariable = ajaxData

Y esto pasaria a newVariable los datos que guardaste de la solicitud ajax


Por otro lado si lo que necesitas es, la lógica del callback fuera del método $.get() de jQuery. puedes hacer algo como esto:

$.get(ruta, window.ajaxCallback = function (res)
   {
     window.ajaxData = res

     // Acá ira tu lógica
     // ...
   }
 )

Esto seria básicamente, crear una copia de esa función callback en otra variable global, en este caso ajaxCallback, igualmente accesible fuera de la misma. Pero claro, esto no tendría mucho sentido a menos que lo utilices en conjunto con esos datos:

ajaxCallback(ajaxData)

O con otros datos similares a esos, todo depende de lo que necesites y/o tengas en mente

Josbert
  • 890
  • 3
  • 16