ajax循环调用ajax调用变量没有更新

时间:2017-08-24 12:57:19

标签: javascript jquery ajax

我正在尝试向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变量但它对我没有用,任何解决方案都会非常感激。

0 个答案:

没有答案