gpt4 book ai didi

javascript - 无法访问javascript中的变量值

转载 作者:行者123 更新时间:2023-11-29 10:51:55 25 4
gpt4 key购买 nike

我有以下源代码:

var labeled_pic = new Array();
var testing;
function get_label_pic(){
$.ajax({
url: "localhost/advanceSearch/index/getlabelpic",
type: "POST",
dataType: "json",
success: function(data) {
$.each(data, function(key, data){
labeled_pic[key] = data;
});
testing = "testing";
}
});
};
get_label_pic();
console.log(labeled_pic);

然后我使用 get_label_pic(); 调用这些函数,之后我想使用 labeled_pic[3] 访问 labeled_pic 数组但是它返回 undefined。我使用 Firebug ,并尝试编写此 console.log(labeled_pic),它返回: Firebug result如何访问 labeled_pic 变量,.?

最佳答案

问题在于您正在进行异步调用(AJAX 请求),因此您的 JavaScript 会继续运行并且不会等待调用返回。

所以对 get_label_pic() 的调用根本不需要时间,您的代码将直接继续到 console.log(labeled_pic)(不会尚未设置,因为 AJAX 调用中的 success 回调尚未完成。

如果你想要我们,那么你需要将你的代码放入你的 AJAX 成功,或者从它调用另一个函数:

function get_label_pic(){
$.ajax({
url: "localhost/advanceSearch/index/getlabelpic",
type: "POST",
dataType: "json",
success: function(data) {
$.each(data, function(key, data){
labeled_pic[key] = data;
});
testing = "testing";

console.log(labeled_pic); // this will show the values
callmyOtherFunction(); // To call something else
}
});
};
get_label_pic();
console.log(labeled_pic); // This will be undefined

实际发生的是这样的:

  1. 创建函数 get_label_pic
  2. 调用 get_label_pic()
    1. 发出ajax请求
  3. 调用 console.log
  4. 脚本在最后
  5. 一段时间过去了,然后服务器响应返回
    1. 遍历数据,设置labeled_pic[key]
    2. 设置 testing = 'testing'
    3. 调用 console.log(labeled_pic);
    4. 调用 callmyOtherFunction()

关于javascript - 无法访问javascript中的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8517742/

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