Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/03/2016, 09:48
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Guardar JSON en variable local

El comportamiento que obtienes es lógico puesto que estás realizando una petición asíncrona y tú pretendes trabajar con la respuesta obtenida pero de manera síncrona. Sabiendo esto, solo te queda ejecutar tus instrucciones en el callback del método $.getJSON() o almacenando en una variable el resultado de la ejecución del método y, usando el método $.when(), ejecutarías tus instrucciones en el callback del método .then(). Sería algo muy similar a la primera opción, con la diferencia de que podrías ejecutar tus instrucciones en otro bloque de código e incluso volver a ejecutarlo más de una vez.

Código Javascript:
Ver original
  1. var json = $.getJSON('/data/es2015.json');
  2.  
  3. //Otras instrucciones que no vayan a utilizar el resultado de la petición
  4.  
  5. $.when(json).then(function(data){
  6.     //Tus instrucciones
  7. });

Incluso puedes hacerlo directamente con el método .done():
Código Javascript:
Ver original
  1. var json = $.getJSON('/data/es2015.json');
  2.  
  3. //Otras instrucciones que no vayan a utilizar el resultado de la petición
  4.  
  5. json.done(function(data){
  6.     //Tus instrucciones
  7. });

Para saber más sobre estos métodos y otros que puedes utilizar, lee esto.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand