gpt4 book ai didi

javascript - 为什么我的对象值在我的 AJAX 回调函数之外不可用?

转载 作者:行者123 更新时间:2023-11-30 17:57:26 25 4
gpt4 key购买 nike

我正在从 facebook 上的游戏中提取数据并将这些值存储在一个对象中,然后将其传递到 PHP 页面。一切正常,除了存储在对象中的值不知何故没有分配给全局对象变量。

如果我打印出函数中每个键的值,一切都很好。但是,如果我在函数外部打印它们,它们将返回 null,但在函数外部分配的键值除外。

var myObj={};
var key, val, i, nxtCell;
var srcStrings=["Attack","Defense","Health","Energy","Stamina"];

$.ajax(
{
type:'GET',url:'<game link'+uID,
dataType:'html',
success:function(data)
{
var table=$(data);
var myTD=table.find("td");

$(myTD).each(function()
{


for(i=0;srcStrings.length>i;i++)
{
if($(this).text().indexOf(srcStrings[i])>=0 && $(this).text().indexOf("by")<0)
{

key=$.trim($(this).text());
key=key.replace(':','');
val=$.trim($(this).closest("td").next().text());
myObj[key]=val;




}
};
});

// This print works fine.
$.each(myObj, function(key, value)
{
console.log(key + ":" + value);
});

}
});

// Printing myObj key -> value pairs does not work here.

正如我所说,最后一个 each 函数打印出对象值。但它们不会在 AJAX 回调之外打印出来。我尝试将数据传递给 AJAX 调用之外的函数以查看是否有任何效果,但没有。

最佳答案

这是因为当您尝试在 AJAX 回调函数之外打印值时,myObj 仍然只是一个空对象(除了您为其显式设置的任何键/值之外)。

例如

var myObj = {};
$.ajax({
// Settings and callback function that manipulates myObj
})

// Code to print myObj Key -> Value pairs

所有这些代码都是串行运行的,并且由于在您打印 myObj 时您的 AJAX 调用尚未返回,因此它没有您期望的值。

关于javascript - 为什么我的对象值在我的 AJAX 回调函数之外不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17816327/

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