我具有以下功能:https://github.com/anaida07/MEVN-boilerplate/blob/master/client/src/components/EditPost.vue
methods: {
async getPost () {
const response = await PostsService.getPost({
id: this.$route.params.id
})
this.title = response.data.title
this.description = response.data.description
// this.$router.push({ name: 'Posts' })
},
我正在了解MEVN。我想知道是否仍然可以在不使用异步/等待的情况下编写相同的函数。我目前提出了以下建议:
methods: {
getPost () {
const response = PostsService
.getPost({
id: this.$route.params.id
})
this.title = response.data.title
this.description = response.data.description
//this.$router.push({ name: 'Posts' })
},
但是我的控制台日志中出现错误,提示:挂接的钩子中出现错误:“ TypeError:response.data未定义”。任何帮助将不胜感激。
答案 0 :(得分:1)
PostsService
似乎扩展了axios,因此您可以将其用作承诺:
methods: {
getPost () {
PostsService
.getPost({
id: this.$route.params.id
})
.then(({data}) => {
this.title = data.title
this.description = data.description
this.$router.push({ name: 'Posts' })
}
},
发生错误的原因是response = PostsService.getPosts()
实际上没有用数据填充响应变量。它必须先运行查询,然后才能在.then()