JavaScript承诺和API的问题
你好。我需要从外部API中弹出一个表,并从1个请求中获取大部分信息,但是我需要第二个请求来填充developer列。但是,由于某些原因,my promise函数没有填充表。如果我做错了什么,请告诉我。 字符串devList应该放在document.getElementById(curDev)的innerHTML中JavaScript承诺和API的问题,javascript,promise,Javascript,Promise,你好。我需要从外部API中弹出一个表,并从1个请求中获取大部分信息,但是我需要第二个请求来填充developer列。但是,由于某些原因,my promise函数没有填充表。如果我做错了什么,请告诉我。 字符串devList应该放在document.getElementById(curDev)的innerHTML中 const req1=new XMLHttpRequest(); const rawgAPIkey=“**********************”//这里用的是真正的钥匙 常量bas
const req1=new XMLHttpRequest();
const rawgAPIkey=“**********************”//这里用的是真正的钥匙
常量baseurl=”https://api.rawg.io/api";
constURL=新url(baseurl+“/游戏”);
var tbl=document.getElementById(“游戏表”);
url.searchParams.set(“key”,rawgAPIkey);
请求1.打开(“获取”,url);
要求1.responseType=“文本”;
请求1.send();
req1.onreadystatechange=函数(){
如果(req1.readyState==4&&req1.status==200){
var gameArr=JSON.parse(req1.responseText).results;
log(JSON.parse(req1.responseText.results);
for(让index=0;index“
+ "" + " "
+ "" + ""
+“”+gameArr[索引]。已发布+“”
+“”+流派+“”
+“”+agerating+“”
+“”+平台+“”
+“+标记+”;
让curDev=“developerID”+索引;
var url2=新URL(baseurl+“/games/”+gameArr[index].id);
url2.searchParams.set(“key”,rawgAPIkey);
var=”;
异步函数getDev(){
让myProm=新承诺(功能(成功,失败){
const req2=新的XMLHttpRequest();
请求2.打开(“获取”,url2);
req2.responseType=“文本”;
req2.onload=函数(){
如果(需求2.状态===200){
var gamedevs=JSON.parse(req2.responseText).developers;
devList=“”;
for(设i=0;i
编辑2:
通过执行以下操作,我在设置devList的同一函数中填充了表,因此我不再使用承诺:
async function popdevs(){
let req2= new XMLHttpRequest();
req2.open("GET", url2);
req2.responseType="text";
req2.onload=function(){
if(req2.status===200){
var gamedevs=JSON.parse(req2.responseText).developers;
devList="";
for (let i = 0; i < gamedevs.length; i++) {
devList += gamedevs[i].name + " ";
}
document.getElementById(curDev).innerHTML= devList;
//console.log(devList);
//success(devList);
return devList;
}else{
//console.log("Hello");
return "developer unavailable";
}
};
req2.send();
}
popdevs();
异步函数popdevs(){
设req2=newXMLHttpRequest();
请求2.打开(“获取”,url2);
req2.responseType=“文本”;
req2.onload=函数(){
如果(需求2.状态===200){
var gamedevs=JSON.parse(req2.responseText).developers;
devList=“”;
for(设i=0;iasync function popdevs(){
let req2= new XMLHttpRequest();
req2.open("GET", url2);
req2.responseType="text";
req2.onload=function(){
if(req2.status===200){
var gamedevs=JSON.parse(req2.responseText).developers;
devList="";
for (let i = 0; i < gamedevs.length; i++) {
devList += gamedevs[i].name + " ";
}
document.getElementById(curDev).innerHTML= devList;
//console.log(devList);
//success(devList);
return devList;
}else{
//console.log("Hello");
return "developer unavailable";
}
};
req2.send();
}
popdevs();