Есть такой код.
var model = {
getConfig: function(){
that = this;
$.getJSON("latestProjects.json" , function(projects){
that.property = projects.length;
});
alert("model.property = " + that.property);
}
}
model.getConfig();
и файл latestProjects.json в корневой папке
{"length":6, "name": "Joe"}
Дело в том что я хочу получить обьект json и записать его в свойство модели (model.property)// хочу чтобы было model.property.length // = 6 и т.д. Но по не понятной мне причине всё что происходит внутри функции getJSON, выполняется в последнюю очередь, отсюда итог - переменная(свойство) остается undefined до конца выполнения скрипта. Если прописать console.log(model.property) прямо в консоли браузера ( после выполнения скрипта ), то результат будет = 6;
Как решить данную проблему? Хочу именно сохранить обект из JSON в переменную, чтобы иметь доступ к ней во время работы пользователя со страницей браузера. (не хочу каждый раз когда нужно достать данные из статичного json файла, грузить его методом getJSON, да и отделить данные от операций над ними было бы неплохо). Буду рад дельному совету.
Promise. Скоро иasync/await. Подробнее см. дубликат предложенный дубликат. – Oct 17 '16 at 04:23