我有以下代码。
var dat = null;
$.get("example.com", function(data){
dat = data;
alert(dat); // Has the info.
});
alert(dat); // null.
如何在dat
之外访问$.get
?
答案 0 :(得分:2)
访问该变量应该可以正常工作。问题是设置dat的功能将在最后一次警报后运行。
该函数是一个回调..它只在get完成后运行,而最后一个警报将立即运行。
这是一种在回调
之后链接代码的方法var dat = null;
$.get("example.com", function(data){
dat = data;
alert(dat); // Has the info.
}).then(function() {
alert(dat); // Has the info too.
});
答案 1 :(得分:0)
线路警报(数据);在$ .get()之前执行因为异步。将$ .ajax()与async:false一起使用或将alert(data)设置为$ .get()成功:
$.ajax({
type: "GET",
async: false,
url: "example.com",
success: function(data) {
dat = data;
alert(dat);
},
error: function(e) {
console.log(e); //error
}
});