设置:
我正在做一个 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>
问题:
ajax 调用仍处于“待处理”状态,控制移至 if-else 块(有效执行 myVariable 的旧/陈旧值)。然后ajax调用完成。简而言之,在2个alert
框中,alert("after myfunction");
先执行然后再执行alert("inside jsonpCallbackFn");
如您所见,我已经设置了async: false,
,但看起来并没有按预期工作。谁能告诉我我做错了什么?另外,我不确定我是否正确解释了整个场景,如果需要更多信息,请告诉我。
非常感谢。