开发者问题收集

Vue 如何从 async/await 函数返回值?

2021-03-10
5626

我在HTML中称为异步功能。但这是在回报诺言。如何从Aysnc函数显示值?

871249469 742091298
2个回答

在 VueJs 中,你可以将请求中的数据绑定到数据

因此,在下面的示例中,我将评论如何执行此操作:

<template>
   <div>
      <span>{{ user.username }}</span>
      <button @click="getUser(// The user Id)">Click me to get User</button>
   </div>
</template>

<script>
export default {
   data(){
      user:{
         username: "",
      },
   },
   methods:{
      async getUser(userId){
            const res = await this.getUser(userId);
            // Set response on the user registered in data
            this.user.username = res.data.name;
            // Now that you have set the username on the user object
            // You can approach it with {{user.username}}
      }
   }
};
</script>
Tengju Chi
2021-03-10

处理此问题最简单的方法之一是在 Vue 中创建一个数据变量,并让 Vue 在承诺完成时重新渲染该变量。

<div>
   {{ username }}
</div>

data(){
  return {
    username: ''
  }
}

methods: {
 async getUser(userId) {
     try {
        const res = await this.getUser(userId);
        this.username = res.data.name;
     } 
     catch (error) {
        this.username = 'Oh oh , something went wrong' // optional
     }
  },
}
Shreyas B
2021-03-10