Javascript 使用Nuxt.js中的Async/Await等待操作完成(SPA,无SSR)

Javascript 使用Nuxt.js中的Async/Await等待操作完成(SPA,无SSR),javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我正在用Vue和Nuxt与Firebase构建一个应用程序。 我在商店中有以下操作: async loadPrev({commit,rootState},负载){ 试一试{ 让doc=等待此操作。$fireStore.collection(`users/`+rootState.user.uid+`/preventivi`).doc(有效负载).get() 提交(`setLoadedPrev`,doc.data()) } 捕获(e){ 控制台日志(e) } }, 在页面组件(动态路由)中,我通过

我正在用Vue和Nuxt与Firebase构建一个应用程序。 我在商店中有以下操作:

async loadPrev({commit,rootState},负载){
试一试{
让doc=等待此操作。$fireStore.collection(`users/`+rootState.user.uid+`/preventivi`).doc(有效负载).get()
提交(`setLoadedPrev`,doc.data())
}
捕获(e){
控制台日志(e)
}
},
在页面组件(动态路由)中,我通过created()钩子在Firestore中加载关于该精确文档的信息:

data(){
返回{
prevDetails:{}
}
},
计算:{
…地图绘制者({
getLoadedPrev:`prevs/getLoadedPrev`
})
},
方法:{
异步loadPrevInfo(){
试一试{
等待此.store.dispatch(`prevs/loadPrev`,此.route.params.id)
this.prevDetails={…this.getLoadedPrev}
}
捕获(e){
控制台日志(e)
}
}
},
创建(){
this.loadPrevInfo()
}
现在,一切似乎都正常了,事实上,当我选择与Firestore中文档ID匹配的路径时,它会正确加载所有数据


我的问题是:
loadPrevInfo()
方法是否等待分派完成?我担心如果要检索的数据很大,应用程序会在dispatch方法从firestore检索所有数据之前设置
this.prevDetails={…this.getLoadedPrev}
。我是否必须在
loadPrev
操作中返回承诺?如何操作?

否,因为async/await的工作方式与promise类似,而await之后的代码将一直等到await函数的执行完成。
您还可以使“created”异步,以便能够等待加载信息

您也可以在不替换`
users/${rootState.user.uid}/preventivi
`@user3479125的情况下格式化字符串,谢谢!亲爱的,你是怎么做到的?