我正在尝试向url发出一些请求,并依赖于我获取的数据长度作为响应来生成for循环长度时间,这是一个示例:
<script>
var auxData;
var message;
$.ajax({
url: "some url",
type: "GET",
dataType: "json",
success: function (result) {
auxData = eval(result["Some key"])
for(var i = 0, l = (auxData.length-1); i < l; ++i)
{
console.log(i)
$.ajax({
url: "another url",
type: "GET",
dataType: "json",
success: function (result) {
message = eval(resul["Some key"])
console.log("Value of" + i) //ALWAYS PRINTS 8
message= message[i] //RETURNS ERROR
}.bind(this)
});
}
}
});
</script>
我无法将所有代码放在这里,因为它太长而且令人困惑,但是如果变量auxData
的长度为9,则行console.log(i)
在控制台中打印:< / p>
0
1
2
3
4
5
6
7
8
然后在打印完所有内容后,console.log("Value of" + i)
行打印出来:
8
8
8
8
8
8
8
8
8
最后,如果我尝试访问i
message= message[i]
,它不起作用,就像for循环中的调用是分开进行的那样。我搜索了可能存在的问题,但唯一的解决方案是使用回调使变量i
全局变量,但我不知道如何做,也在stackoverflow中找到了这个答案here在ajax成功中访问javascript变量但它对我没有用,任何解决方案都会非常感激。