我有全局变量fan_coil_ai_bi,我使用该变量来存储我从请求获得的一些数据,但问题是len_1是1(在这种情况下是什么值)和len_2未定义(什么是错误的)。如何在我的功能中发生这种情况?如何实现len_2具有与len_1相同的值?这段代码有什么问题?
function read_required_fields(fan_coil_id) {
var parameters = {};
parameters['command'] = 'read_required_fields';
parameters['fan_coil_id'] = fan_coil_id;
$.get("php_scripts/network_script.php", parameters, function(data) {
fan_coil_ai_bi=data;
alert('len_1='+fan_coil_ai_bi.length);
}, "json");
alert('len_2='+fan_coil_ai_bi.length);
}
答案 0 :(得分:3)
异步JavaScript和XML 异步。
get
方法的意思是“发出HTTP请求,当收到响应时,请执行此操作”。
在HTTP响应到来之前,它不会暂停执行该功能。
如果您想对数据执行任何操作,请在回调函数(或您从中调用的函数)中执行。
$.get("php_scripts/network_script.php", parameters, function(data) {
fan_coil_ai_bi=data;
alert('len_1='+fan_coil_ai_bi.length);
alert('len_2='+fan_coil_ai_bi.length);
}, "json");
答案 1 :(得分:2)
您可能想了解异步代码。在你的情况下,发生的事情是:
len_2
正在收到提醒len_1
正在收到提醒因此,当len_2
被提醒时,fan_coil_ai_bi.length
尚未定义。
没有可能解决这个问题;相反,您已经有了一个可行的解决方案:将依赖项移动到回调中。