Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取数组中的值时出现问题-XMLHttpRequest_Javascript_Jquery_Ajax - Fatal编程技术网

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

Javascript 获取数组中的值时出现问题-XMLHttpRequest,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图在服务器上为的循环中发出多个请求。我在这里找到了一些技巧,并实现了建议的解决方案。然而,它似乎不起作用 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 XMLH

我试图在服务器上为的
循环中发出多个请求。我在这里找到了一些技巧,并实现了建议的解决方案。然而,它似乎不起作用

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]);
var valuePlan=[];
函数getValue(id){
var f=(函数(){
var xhr=[],i;
for(i=0;i
使用
console.log(valuePlan[0])时出现的问题
在控制台中,它返回
未定义的
,如果使用
console.log(valuePlan)
返回具有正确值的
数组
。你能理解吗


该变量已定义为全局变量,即使这样,我也无法获取它的单个值。

您可以查看一下,或者……因此您在如何使用
I
时遇到问题,在执行回调时,
I
的值是错误的。另一个问题是你试着订购一个比萨饼,并在它送到之前吃掉它。循环在Ajax调用完成之前完成,因此您需要在它完成之前进行日志记录。您的代码是
异步的
,因此
valuePlan
不会立即保存结果值,但在Ajax调用结束时,您应该明确使用
Promise
来处理此类场景