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 originalvar json = $.getJSON('/data/es2015.json');
//Otras instrucciones que no vayan a utilizar el resultado de la petición
$.when(json).then(function(data){
//Tus instrucciones
});
Incluso puedes hacerlo directamente con el método
.done():
Código Javascript
:
Ver originalvar json = $.getJSON('/data/es2015.json');
//Otras instrucciones que no vayan a utilizar el resultado de la petición
json.done(function(data){
//Tus instrucciones
});
Para saber más sobre estos métodos y otros que puedes utilizar, lee
esto.
Un saludo