我正在尝试为我的NEXTJS项目构建一个对象,它遍历所有的域和它们的页面,然后构建一个包含站点名称和页面URL的对象。这是我在getStaticPaths函数中的动态分页。
现在它对我不起作用了,在我的理解中,我正在以正确的方式做这件事。但似乎我错过了一些东西。我已经在谷歌上搜索了一段时间,但没有什么真正解决和匹配我在这一点上面临的问题。
我现在有下面的代码
下面是我现在拥有的代码
const pages = async () => {
const allPages = data.map(async ({ params }) => {
const site = params.site
const siteInfo = await getSiteInfo(site as string)
if (typeof siteInfo !== typeof undefined) {
const siteId = siteInfo[0].site_id
const allPages = await getPages(site, siteId)
return allPages.map((pages) => {
return {
params: {
site: params.site,
slug: pages.page_url,
},
}
})
}
})
return allPages
}
const paths = pages()
console.log(paths)
然后console.log将显示下一个输出
[ Promise { <pending> }, Promise { <pending> } ]
我一直在尝试用pages.then(result)捕捉响应,然后记录结果,但这也没有做任何事情。
我期待的回应是这样的每一页。
params: {
site: test website,
slug: 'contact',
},
3条答案
按热度按时间xwmevbvl1#
pages
函数是async
,但是:1.它不执行任何异步操作,只是返回一个Promises数组
1.反正你也不是在等
您可以在函数中
await
Promises数组:然后等待调用该函数:
或者用回调来跟进:
tjrkku2a2#
我觉得
我应该做的伎俩(等待Promise. all等待数组中的所有承诺完成,并返回数组与他们的结果)
t3psigkw3#
您可以使用Promise.all来使用一个承诺数组,请尝试以下操作: