gpt4 book ai didi

javascript - jQuery 函数执行顺序

转载 作者:行者123 更新时间:2023-11-28 12:04:21 24 4
gpt4 key购买 nike

我对 $.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 的返回处理程序中的警报显示它已被分配。

最佳答案

$.get() 是异步的。您必须使用回调来填充变量并在请求完成后进行计算。像这样的东西:

$(document).ready(function(){

$.get( "yourUrl", function( data, textStatus, jqXHR ) {
var myData = data; // data contains the response content
// perform your processing here...
registerHandlers( myData ); // you can only pass "data" off course...
});

});

// your function to register the handlers as you said you need to.
function registerHandlers( data ) {
// registering handlers...
}

关于javascript - jQuery 函数执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com