【发布时间】:2019-06-04 20:08:57
【问题描述】:
在我的应用程序中,我有一个卖家页面,其中显示了该卖家列出的产品。我正在使用 asyncData 来获取页面所需的所有数据(更适合 SEO)
asyncData ({params, app, error }) {
return app.$axios.$get(`/seller/${params.username}`).then(async sellerRes => {
let [categoriesRes, reviewsRes, productsRes] = await Promise.all([
app.$axios.$get(`/categories`),
app.$axios.$get(`/seller/${params.username}/reviews`),
app.$axios.$get(`/seller/${params.username}/products`)
])
return {
seller: sellerRes.data,
metaTitle: sellerRes.data.name,
categories: categoriesRes.data,
reviewsSummary: reviewsRes.summary,
products: productsRes.data,
}
}).catch(e => {
error({ statusCode: 404, message: 'Seller not found' })
});
},
虽然这种方法起到了预期的作用,但我不禁认为我做错了。
导航到页面时,nuxt 进度条显示两次(这很奇怪)。
我一直在寻找一段时间,试图在 asyncData 中找到多个请求的示例,但没有太多。
也许我不应该在 asyncData 中调用多个请求?
【问题讨论】:
-
您是否尝试过
await获取 app.$axis.$get 而不是返回它?
标签: javascript vue.js vuejs2 nuxt.js