试图显示来自 json 的数据。
当我在控制台上运行我的函数时,它显示:
Promise {} 和 [[PromiseState]]:“已完成”
但实际上并没有返回任何东西。
getJobs = async () => {
try{
response = await fetch("./data.json");
const data = await response.json();
return data;
} catch(error){
console.log('Error getting data', error)
}
}
renderJobs = async () => {
const jobs = await getJobs();
const view = `
<div class='card-company'>
${jobs.map(companyName => `
<p>${companyName.company}</p>
`).join('')}
</div>
`
return view
}
我在属性 [[PromiseResult]]
中有我需要的所有 p 标签但文档中没有显示任何内容。我还没有找到类似的东西,如果这个片段有什么需要改进的,我很感激反馈。
谢谢你。
最佳答案
因为这些是 async
功能,需要使用await
得到它们的最终返回值。
要记录 HTML 字符串,您可以使用 console.log(await renderJobs());
,以及在哪里运行 renderJobs()
在您的代码中,您需要使用 await
也可以获取 HTML 字符串。
使用 console.log(renderJobs());
将返回您描述的 promise 待处理消息,因为 async
函数返回一个 promise ,而不是 promise 的结果。使用 await
返回使用它的 Promise 的已实现值。
关于javascript - promise 未决,已履行不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65067234/