我有一个 Jquery 代码,如下所示
function get_data_obj(){
var dataObj;
$.ajax({
url: "XXX.soesite.XXX",
success: function(result) {
dataObj = ['Hi'];
console.log("Inside ajax");
console.log(dataObj);
}
});
console.log("Outside ajax");
console.log(dataObj);
}
get_data_obj();
我期望的输出是
Inside ajax
['Hi']
Outside ajax
['Hi']
但是我得到的输出看起来像这样
Outside ajax
undefined
Inside ajax
['Hi']
我对函数的控制流感到非常困惑。基本上,我的函数应该首先使用 ajax,然后打印其他语句,但不幸的是我的函数没有按我的预期工作。谁能告诉我我的代码有什么问题以及如何让我的函数首先完成ajax工作然后再进一步?
最佳答案
如果您没有另外指定,
$.ajax
默认是异步的。
如果您希望在 $.ajax
请求之后发生操作,则应将其包含在 done()
/success()
中>/fail()
函数或将 async
设置为 false
。
function get_data_obj() {
var dataObj;
$.ajax({ url: "XXX.soesite.XXX", async: false, success: function(result) {
dataObj = ['Hi'];
console.log("Inside ajax");
console.log(dataObj);
}});
console.log("Outside ajax");
console.log(dataObj);
}
get_data_obj();
关于javascript - jQuery : Ajax is not been called first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39654948/