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