вызов async-ajax не работает должным образом
Setup:
Я делаю вызов ajax-jsonp, который работает нормально. Функция обратного вызова этого изменяет значение переменной «myVaraible». Сразу после вызова существует некоторая логика if-else, которая работает со значением «myVaraible».
Вот код:
<script>
function myfunction() {
$.ajax({
url: myURL,
dataType: "jsonp",
jsonp : "jsonp",
async: false,
jsonpCallback: "jsonpCallbackFn"
});
}
function jsonpCallbackFn(mydata) {
alert("inside jsonpCallbackFn");
if(something) {
// change value of a variable "myVariable";
}
}
$(document).ready(function() {
$("#preview_button").mouseover(function() {
myfunction();
alert("after myfunction");
// do some if-else logic based upon the value of myVariable which is updated by the call to myfunction()
});
});
</script>
The Problem:
Вызов ajax остается «ожидающим», элемент управления перемещается в блок if-else (эффективно выполняющийся при старом / устаревшем значении myVariable). И тогда вызов ajax завершается. Короче из 2alert
ящики,alert("after myfunction");
выполняется сначала, а затемalert("inside jsonpCallbackFn");
Как видите, я уже установилasync: false,
, но похоже, что это не работает, как ожидалось. Может кто-нибудь сказать мне, что я делаю не так? Кроме того, я не уверен, правильно ли я объяснил весь сценарий, пожалуйста, дайте мне знать, если потребуется дополнительная информация.
Большое спасибо.