Javascript获取变量问题

Javascript获取变量问题,javascript,api,fetch,Javascript,Api,Fetch,平庸的javascript开发人员需要一些帮助 我想在for循环中多次对url进行GET调用 我正在尝试使用fetch,但是由于承诺/时间的关系,我不知道如何使它工作 下面是代码,完全可能fetch方法对我正在尝试做的事情没有意义。如果您能帮助我编写代码,或者告诉我我是白痴,并建议另一种选择,我将不胜感激:) var fromant=100; var-fromOOP=50; var fromGM=50; var fromCur=“美元” 风险价值总额=[“美元”、“欧元”、“印度卢比”、“英镑”

平庸的javascript开发人员需要一些帮助

我想在for循环中多次对url进行GET调用

我正在尝试使用fetch,但是由于承诺/时间的关系,我不知道如何使它工作

下面是代码,完全可能fetch方法对我正在尝试做的事情没有意义。如果您能帮助我编写代码,或者告诉我我是白痴,并建议另一种选择,我将不胜感激:)

var fromant=100;
var-fromOOP=50;
var fromGM=50;
var fromCur=“美元”
风险价值总额=[“美元”、“欧元”、“印度卢比”、“英镑”、“新加坡元];
var adjAmt=[];
异步函数getConversionAsync(fcur、tcur、amt)
{
let response=等待取数('https://data.fixer.io/api/convert?access_key=xyxyxyxyxyxyxy&from=“+fcur+”&to=“+tcur+”&amount=”+amt);
let data=wait response.json()
返回数据;
}
对于(i=0;i显示(数据));
}
功能显示(东西){
推动(事物、结果);
}
document.getElementById(“某物”).innerHTML=adjAmt[0].toString();

进行一些小更改,使其在不使用API调用的情况下工作,但您需要访问循环中的正确索引。我不知道您想要的确切输出是什么,但在本例中,我只是将数组中的所有值合并在一起

此外,一旦从API检索到所有值,就需要进行
innerHTML
的设置,因此我甚至建议在循环终止或其他“完成”类型事件时进行设置

此外,您可以使用
Promise.all
而不是循环,这是我个人的想法

var fromant=100;
var-fromOOP=50;
var fromGM=50;
var fromCur=“美元”
风险价值总额=[“美元”、“欧元”、“印度卢比”、“英镑”、“新加坡元];
var adjAmt=[];
异步函数getConversionAsync(fcur、tcur、amt){
让响应=等待采样器请求()
/*let data=wait response.json()*/
返回响应;
}
对于(i=0;i{
显示(数据)
})
}
功能显示(东西){
推动(事物);
document.getElementById(“某物”).innerHTML=adjAmt.join(“,”)
}
函数sampleRequest(){
返回新承诺((解决、拒绝)=>{
解析(Math.round(Math.random()*1000))
})
}

在您的示例中,
document.getElementById(“某物”).innerHTML=adjAmt[0].toString()adjAmt
之前执行code>。在显示结果之前,需要等待循环调用完成,为此,可以将所有内容包装在异步函数中

const fromant=100;
常量fromOOP=50;
常数fromGM=50;
const fromCur=‘USD’;
成本=美元、欧元、印度卢比、英镑、新加坡元;
常量adjAmt=[];
常量getConversionAsync=async(fcur、tcur、amt)=>{
const response=等待获取(`https://data.fixer.io/api/convert?access_key=xyxyxyxyxyxyxy&from=${fcur}&to=${tcur}&amount=${amt}`);
返回response.json();
}
功能显示(东西){
推动(事物、结果);
}
(异步()=>{
对于(i=0;i})();此代码的作用是什么?你想让它做什么呢?我想一个问题是你从来没有在循环中使用
I
的值。
var fromAmt = 100;
var fromOOP = 50;
var fromGM = 50;
var fromCur = "USD"
var toCur = ["USD","EUR","INR","GBP","SGD"];

var adjAmt = [];

async function getConversionAsync(fcur,tcur,amt) 
{
  let response = await fetch('https://data.fixer.io/api/convert?access_key=xyxyxyxyxyxyxy&from=' + fcur + '&to=' + tcur + '&amount=' + amt);
  let data = await response.json()
  return data;
}

for (i = 0; i < toCur.length; i++) {

getConversionAsync(fromCur,toCur[0].toString(),fromAmt)
  .then(data => display(data));

}


function display(thing){
adjAmt.push(thing.result);
}

document.getElementById("something").innerHTML = adjAmt[0].toString();