我正在尝试在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
。你能理解吗?
该变量已经定义为全局变量,即使那样我也无法获取其单个值。