Comunidad de diseño web y desarrollo en internet online

alcance de variables Javascript.

Citar            
MensajeEscrito el 11 Jun 2015 04:15 pm
Hola soy Diego y esta es mi primera interacción en CristaLab. Tengo un problema con la función $.getJSON de JQuery. La estoy utilizando para consumir datos de un web service que me devuelve un JSON. La función me anduvo bien, envío la url y dentro de la función manipulo los datos:

var url = '...';

$.getJSON(url, function (response) {
tamanioArray = response.length;

for(ind = 0; ind < tamanioArray; ind++)
{
marcador = {
IdMarcador: response[ind]['id'],
...
// Proceso el resto de los datos para conformar el objeto marcador
...
};

referencias[ind] = marcador;
}
procesarArray(referencias)
});

El procesamiento de los datos es correcto y la función procesarArray funciona bien. El problema que tengo es en la variable referencias, que es un Array que guarda los datos parseados en el JSON. Esta variable la defino como global, pero una vez que salgo de la función que defino en el $.getJSON queda vacia, es decir que pierdo los datos que en ella le almacené. Supongo que es un problema con el alcance de la variable y que se trata de una función anónima (la que defino dentro de $.getJSON).
Cómo puedo hacer para "ver" esa variable referencias una vez que salgo de la función?

Muchas gracias y espero puedan ayudarme!

Por diegote2.0

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Jun 2015 10:31 pm
Guardandola en una variable, que este fuera :)

var respuesta = null;

$.getJSON(bla bla bla function(response){

respuesta = response;

for(ind = 0; ind < bla bla ba
});


console.log(respuesta) ;)

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 12 Jun 2015 11:56 am
Hola elporfirio,, gracias por la respuesta. Eso no me funcionó, de hecho es lo que estaba tratando de hacer con la variable "referencias" que estaba en mi ejemplo. En ese Array guardo el contenido del JSON pero al salir de la función anónima queda vacio sin datos nuevamente como antes de entrar a la función.

Por diegote2.0

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Jun 2015 12:25 pm
La asignación que dice elporfirio debe estar al final de la función anónima, y creo que la variable que quieres extraer es "referencias", no "response".

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Jun 2015 01:12 pm
Si, la asignación está al final de la función, de todas maneras cuando estoy fuera del ámbito de la función ya pierdo esa asignación. La variable referencias es la que quiero sacar, la cuál almacena los datos obtenidos en response.

Por diegote2.0

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Jun 2015 01:20 pm
Me temo que el problema está en otra parte. ¿Podrías poner el código completo que estás usando en algún lugar donde podamos probarlo?. Es sencillo saber dónde está el problema si le podemos pasar un debugger.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.