Это запрос AJAX, а A означает Асинхронный, это означает, что ваш код не останавливается и не ожидает ответа, если вы не скажете так. $.get
- это всего лишь оболочка вокруг $.ajax
. Если вы хотите, чтобы запрос был синхронным, вам нужно использовать $.ajax
вместо этого:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
Или вы можете использовать функцию обратного вызова для проверки данных. Функция обратного вызова - это функция, которую вы определили в атрибуте успеха. Эта функция вызывается после завершения запроса. Таким образом, вы можете сделать что-то вроде этого:
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
если /* do something */
очень длинный, вы можете поместить его в отдельную функцию и затем вызвать вызов функции для запроса get следующим образом:
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);