Я совершенно не понимаю, почему Javascript делает определенные вещи таким образом, или, может быть, я что-то не так кодировал. Но как получается, что код после выполнения $ .getJSON до завершения обратного вызова?
window.ratingCallback = function(data){
if(data[0].code == 3){
ratingHTML = buildHTML(0);
console.log('a'+ratingHTML);
return;
}
ratingHTML = buildHTML(data[0].rating);
console.log('b'+ratingHTML);
return;
};
function buildHTML(pageRating){
for(counter = 1; counter <= 5; counter++){
if(counter == pageRating){
ratingHTML += '<input name="star1" type="radio" class="star" value="'+counter+'" checked="checked"/>';
} else {
ratingHTML += '<input name="star1" type="radio" class="star" value="'+counter+'"/>';
}
}
return ratingHTML;
}
$.getJSON("https://domain.com/"+data+"?jsoncallback=?");
console.log(ratingHTML+"WHY DOES THIS EXECUTE FIRST AND NOT AFTER THE CALLBACK SINCE IT IS PLACED AFTER getJSON????");
Причина, по которой я хочу, чтобы это отличалось, заключается в том, что мне нужно, чтобы ratingHTML был глобальной переменной.
Я понимаю, что обратный вызов вызывается, когда удаленный сервер дал ответ, но могу ли я позволить остальной части сценария подождать с дальнейшим выполнением? Без помещения всего кода в функцию обратного вызова или любую функцию?
Большое спасибо!
Лед