gpt4 book ai didi

javascript - 递归javascript/ajax函数: unable to access global variable set inside function

转载 作者:行者123 更新时间:2023-12-02 19:55:18 25 4
gpt4 key购买 nike

在我的ajax应用程序中,我尝试使用一个递归函数,其中调用另一个函数来创建一个全局变量,并且我想在递归函数内使用该变量。但是,我遇到了麻烦,因为我无法访问递归函数内的全局变量(尽管如果我单独调用该函数,则它是可用的)。递归函数的代码如下。

ajaxCity.displayCell() 设置一个 window.cells[] 变量,其中包含一个数字数组。这个想法是为每个数字调用 tree() 函数。

function tree (topCell) {
var ajaxCity = new Ajax();
ajaxCity.displayCell(topCell);

for (var i = 0; i < window.cells[topCell].cKids.length; i++) {
tree(window.cells[topCell].cKids[i]);
}
}

window.cells[] 变量在我运行该函数一次后可用,但是我应该如何更改该过程,使其按照我想象的方式工作?

感谢您的帮助!

编辑:这是我收到的错误。

TypeError: window.cells[topCell] is undefined

如果我再次调用树函数,它将工作更深的一个“级别”,然后再次给出错误,等等

================

谢谢 James Montagne,正如您所指出的,问题是我需要等待 ajax 请求返回。再次感谢!

最佳答案

我在这里根据变量名称做出一些假设,但我认为

ajaxCity.displayCell(topCell);

将进行 ajax 调用,其结果将是创建 window.cells...

如果是这种情况,问题就在于 AJAX 是异步的(即第一个 A)。如果您发出 AJAX 请求,然后立即尝试使用该请求的结果,您将找不到结果。这是因为 AJAX 请求尚未返回。您将需要在 AJAX 请求的回调中处理结果。

关于javascript - 递归javascript/ajax函数: unable to access global variable set inside function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8734897/

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