В следующей функции jquery может кто-нибудь объяснить мне, почему «второй» выполняется до «первого»? Я предполагаю, что весь запрос $ .post должен быть завершен до того, как браузер перейдет к следующей строке кода, но это, похоже, не происходит.
function getGUID() {
$.post(getGUIDScript, function(data, textStatus) {
alert("first");
GUID = data;
},
'text');
alert("second");
}
Спасибо за ответы ниже, ребята. Для потомков код выше может быть записан, как показано ниже, чтобы подождать, пока сообщение не будет завершено, прежде чем двигаться дальше.
function getGUID() {
$.ajax({
type: "POST",
url: getGUIDScript,
async: false,
success: function(data) {
alert("first");
GUID = data;
}
});
alert("second");
}
Это будет вызывать первое предупреждение, а затем второе.
Любой способ, чтобы он подождал, пока он не будет завершен? Я возвращаюсь из функции до завершения $ .post. –
Единственный способ, который я могу придумать, - включить остальную часть исполняемого скрипта в качестве обратного вызова POST. –
См. Мое обновление. Лучшим способом было бы передать функцию функции для выполнения в качестве обратного вызова в сообщении. – tvanfosson