gpt4 book ai didi

Javascript 变量在不应该的时候被重置

转载 作者:行者123 更新时间:2023-12-02 20:05:47 25 4
gpt4 key购买 nike

我有一个正在调用的函数来加载配置文件,我需要检查是否返回任何数据,如果没有,我需要提醒配置文件不存在。

这是我的代码。

    // Get JSON data from server
result = false;
function loadData(id) {
$.get("modules/device/loadConfigurationData.php", {
id : id
}, function(response) {
for (var i =0; i < response.length -1; i++)
if (response[i])
{
settings[response[i].setting_name] = response[i].setting_value;
result = true;
}
else
{
result = false;
}
}, 'json');
}

这里是加载配置文件的函数。请注意,配置文件确实适用于 CONFIG 1 和 CONFIG 2,但不适用于 CONFIG 3 和 CONFIG 4。

   // Load Configuration 1
function config1() {
loadData(1)
alert(result);
if (result)
{
alert('CONFIG 1 Loaded');
configurationLoaded = true;
}
else
{
alert('CONFIG 1 does not exist.');
}
}
// Load Configuration 2
function config2() {
loadData(2)
alert(result);
if (result)
{
alert('CONFIG 2 Loaded');
configurationLoaded = true;
}
else
{
alert('CONFIG 2 does not exist.');
}
}
// Load Configuration 3
function config3() {
loadData(3)
if (result)
{
alert('CONFIG 3 Loaded');
configurationLoaded = true;
}
else
{
alert('CONFIG 3 does not exist.');
}
result = false;
}
// Load Configuration 4
function config4() {
loadData(4)
alert(result);
if (result)
{
alert('CONFIG 4 Loaded');
configurationLoaded = true;
}
else
{
alert('CONFIG 4 does not exist.');
}
}

如果数据存在,则应加载配置数据,否则应返回 false 并显示警报,让用户知道配置文件不存在。由于某种原因,结果变量被重置并使其不起作用。

任何帮助将不胜感激。

最佳答案

这不起作用,因为 get 是异步运行的。因此,基本上,您的结果变量很可能会在回调中设置 result 变量之前收到警报。

loadData(2); would still be loading. 
alert(result); this would be called before result is populated.

关于Javascript 变量在不应该的时候被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450451/

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