Javascript 我如何使一个for…in循环在承诺内工作?

Javascript 我如何使一个for…in循环在承诺内工作?,javascript,html,css,asynchronous,Javascript,Html,Css,Asynchronous,我正在构建一个从API获取数据的应用程序。我使用fetch方法和几个.then()来处理数据。在我使用for…in循环来组织它并在浏览器中显示它之后 //从API获取数据 var dataD=document.getElementById('data'); var url='1〕https://swapi.dev/api/starships/9/'; document.addEventListener(“DOMContentLoaded”,(事件)=>{ 获取(url)。然后(响应=> res

我正在构建一个从API获取数据的应用程序。我使用fetch方法和几个.then()来处理数据。在我使用for…in循环来组织它并在浏览器中显示它之后

//从API获取数据
var dataD=document.getElementById('data');
var url='1〕https://swapi.dev/api/starships/9/';
document.addEventListener(“DOMContentLoaded”,(事件)=>{
获取(url)。然后(响应=>
response.json()
)。然后(响应=>{
console.log(响应)
常数z=响应;
用于(z中的常量键){
如果(z.hasOwnProperty(键)){
dataD.innerHTML=`${key}:${z[key]}`
log(`${key}:${z[key]}`)
}
}
})
.catch(err=>console.log(`error${err}`))
})

如果您使用innerHTML,您需要有一个完整的东西-一次又一次地覆盖innerHTML

这里我使用一个定义列表

注意:如果要处理嵌套对象,则需要递归

//从API获取数据
让dataD;
常量url=https://swapi.dev/api/starships/9/';
document.addEventListener(“DOMContentLoaded”,(事件)=>{
dataD=document.getElementById('data');
获取(url)。然后(响应=>
response.json()
)。然后(响应=>{
const html=Object.entries(response.map([k,v])=>`${k}${v}`)
dataD.innerHTML=html.join(“”);
})
.catch(err=>console.log(`error${err}`))
})

如果您使用innerHTML,您需要有一个完整的东西-一次又一次地覆盖innerHTML

这里我使用一个定义列表

注意:如果要处理嵌套对象,则需要递归

//从API获取数据
让dataD;
常量url=https://swapi.dev/api/starships/9/';
document.addEventListener(“DOMContentLoaded”,(事件)=>{
dataD=document.getElementById('data');
获取(url)。然后(响应=>
response.json()
)。然后(响应=>{
const html=Object.entries(response.map([k,v])=>`${k}${v}`)
dataD.innerHTML=html.join(“”);
})
.catch(err=>console.log(`error${err}`))
})
这正在工作

//从API获取数据
var dataD=document.getElementById('data');
var url='1〕https://swapi.dev/api/starships/9/';
var数组=[];
document.addEventListener(“DOMContentLoaded”,(事件)=>{
获取(url)。然后(响应=>
response.json()
)。然后(响应=>{
console.log(响应)
常数z=响应;
用于(z中的常量键){
如果(z.hasOwnProperty(键)){
push(`${key}:${z[key]}`);
dataD.innerHTML=array.join(“”);
}
}
})
.catch(err=>console.log(`error${err}`))
})
这正在工作

//从API获取数据
var dataD=document.getElementById('data');
var url='1〕https://swapi.dev/api/starships/9/';
var数组=[];
document.addEventListener(“DOMContentLoaded”,(事件)=>{
获取(url)。然后(响应=>
response.json()
)。然后(响应=>{
console.log(响应)
常数z=响应;
用于(z中的常量键){
如果(z.hasOwnProperty(键)){
push(`${key}:${z[key]}`);
dataD.innerHTML=array.join(“”);
}
}
})
.catch(err=>console.log(`error${err}`))
})

你一遍又一遍地写同样的
.innerHTML
。谢谢你,阿尔尼塔克先生。所以我想我必须使用push方法?这取决于您希望输出的样子。您可以替换整个
,以。。。在
循环中使用类似的内容
dataD.innerHTML=Object.entries(response.map([key,val])=>`${key}:${val}`)。join(“\n”)尽管正如Alnitak所写,这取决于……我创建了一个数组,并将每个项推入其中,然后使用join方法在dataD div中显示整个数组。非常感谢你一遍又一遍地写同样的
.innerHTML
。谢谢你,阿尔尼塔克先生。所以我想我必须使用push方法?这取决于您希望输出的样子。您可以替换整个
,以。。。在
循环中使用类似的内容
dataD.innerHTML=Object.entries(response.map([key,val])=>`${key}:${val}`)。join(“\n”)尽管正如Alnitak所写,这取决于……我创建了一个数组,并将每个项推入其中,然后使用join方法在dataD div中显示整个数组。非常感谢你