我对$.get()
函数的 jQuery 执行顺序有问题,或者可能缺乏理解。我想从数据库服务器中检索一些信息以在$.ready()
函数中使用。众所周知,当 get 返回时,它会将数据传递给返回处理程序,该处理程序对数据进行处理。在我的情况下,我想为在就绪处理函数中声明的变量分配一些值。但问题是,$.get()
在 ready 退出之前,返回处理程序不会执行。我想知道(a)我这样做是否正确/是否有更好的方法,或者(b)是否有解决方法(即强制 get return 处理程序立即执行或其他一些我不知道的修复的)。我有一种感觉,这是一些关于 JavaScript 的闭包。
根据要求,我将发布一个示例来说明我的意思:
$(function() {
var userID;
$.get(uri, function(returnData) {
var parsedData = JSON.parse(returnData);
userID = parsedData.userID;
});
});
如您所见,我正在准备好声明一个变量。然后使用对数据库的 get 调用来检索所需的数据。然后我解析返回的 JSON 并将 userID 分配给之前声明的变量。我已经用几个警报对其进行了测试。get 之后的警报将 userID 显示为未定义,但 get 的返回处理程序中的警报显示它已被分配。