Попробуйте установить для async
значение false: ( См. Редактирование ниже )
$.ajax({
type: "POST",
async: false,
url: "/webservice/user.asmx/CheckForm",
data: "{'type':'" + var_type + "', 'value':'" + var_value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (data) {
var obj = data.d;
}
});
Это приведет к блокировке вызова AJAX, поэтому браузер будет ждать его завершения, прежде чем продолжить. Конечно, я все еще не уверен, как это относится к булеву проверке в родительском условном выражении. Может быть, есть код, который вы нам не показываете ...
<ч />
Редактировать: ::: sigh ::: Я был молод и глуп, когда отправил этот ответ, и фактически забыл все об этом. Я сохраняю приведенную выше информацию без изменений в исторических целях (поскольку она, похоже, помогла некоторым людям или, по крайней мере, они так думают), но понимаю, что это неправильный подход .
Выполнение асинхронных вызовов синхронно и блокирование выполнения во всех отношениях некорректно. Не делай этого. Вместо этого структурируйте логику, чтобы реагировать на асинхронные операции. В случае этого вопроса вызовы console.log()
должны происходить в обработчике успеха (или ошибки) вызова AJAX, а не в коде после вызова этого вызова.