$.getJSON помогите разобраться.
Уважаемые гуру!, объясните пожалуйста, почему:
var massive = {};
$.getJSON('url', RespFunc);
function RespFunc(data) {
// если я обрабатываю data прямо в этой функции -
alert(data[0].name); // работает как положено
// а если -
massive.resp = data;
}
alert(JSON.stringify(massive.resp)); // или ерунда какая-то или undefind
Ковыряя просторы Google так и не понял как правильно ей пользоваться. Задача состоит в том, чтобы массиву присвоить ответ. :help: Если можно. с пояснениями работы данного чуда. Примного благодарен! :) |
Dark Souls, $.getJson создает асинхронный запрос, поток при этом не блокируется.
В строке 11 в момент её выполнения объект "massive" еще пустой. |
Цитата:
setTimeout - это жлобство... Есть толковое решение? |
alert внутрь RespFunc
|
Dark Souls, можете выполнять необходимые действия в функции "RespFunc" либо обернуть запрос в "Promise".
new Promise(function(resolve){
$.getJSON('url', function(res){
resolve(res);
});
}).then(function(res){
alert(JSON.stringify(res));
});
|
Что то не вышло.
document.addEventListener('load', init(), false);
function init() {
var massive = {};
massive.all = new Promise(function (resolve) {
$.getJSON('url', function (data) { resolve(data); })
}).then(function (responce) { return responce; });
return massive;
}
alert(JSON.stringify(init())); // {}
как то можно сделать так, что-бы пока не проинициализируется объект в init(), крутился прелоадер и не выполнялась остальная часть кода? |
Цитата:
upd. написанное выше не поможет, у вас вообще все неправильно... Возьмите код с пятого сообщения этой темы и поиграйтесь с ним. upd2. почитайте, вроде бы подходящая для вас статья. |
Спасибо! Вроде разобрался... :)
|
| Часовой пояс GMT +3, время: 07:29. |