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
来处理此类场景