在数组中获取值时出现问题-XMLHttpRequest

时间:2018-09-04 17:01:41

标签: javascript jquery ajax

我正在尝试在loop for内的服务器上发出多个请求。我在这里找到了一些提示,并实施了建议的解决方案。但是,它似乎不起作用。

var valuePlan = [];
function getValue(id) {
   var f = (function(){
      var xhr = [], i;
      for(i = 0; i < id.length; i++){ //for loop
         (function(i){
            xhr[i] = new XMLHttpRequest();
            url = "get.php?id=" + id[i] + "&for=monthly";
            xhr[i].open("GET", url, true);
            xhr[i].onreadystatechange = function(){
               if (xhr[i].readyState === 4 && xhr[i].status === 200){
                  console.log('Response from request ' + i + ' [ ' + xhr[i].responseText + ']');
                  valuePlan.push(xhr[i].responseText.replace(".", ","));
               }
            };
            xhr[i].send();
         })(i);
      }
   })();
};
getValue([48,52,50]);
console.log(valuePlan[0]);

当我在控制台中使用console.log(valuePlan[0]);时,它会返回undefined,如果使用console.log(valuePlan);,则会返回具有正确值的arrays。你能理解吗?

该变量已经定义为全局变量,即使那样我也无法获取其单个值。

0 个答案:

没有答案