methods: { // 弹出框关闭后触发 handleClose() { // 子组件调用父组件方法,并传递参数 this.$emit('changeShow', 'false') // 重置数据,同时也取消了表单的校验 refundFormData:el-form用ref绑定的值, this.$refs.refundFormData.resetFields() }, // 添加分类 handleCate() { this.showDialog = false var params = { name: this.form.name, categoryId: "", source: 6, parameter: { company: "a", }, } addCategory(params).then((res) => { this.$refs.refundFormData.resetFields() this.$router.go(0); }) } }, watch: { // 监听 addOrUpdateVisible 改变 addOrUpdateVisible(oldVal, newVal) { this.showDialog = this.addOrUpdateVisible }, } 请问这段代码如何用async和await改写
时间: 2024-04-13 20:28:30 浏览: 106
async和await的用法
你可以使用async和await来改写这段代码。下面是改写后的代码:
```javascript
methods: {
async handleClose() {
this.$emit('changeShow', 'false');
this.$refs.refundFormData.resetFields();
},
async handleCate() {
this.showDialog = false;
var params = {
name: this.form.name,
categoryId: "",
source: 6,
parameter: {
company: "a",
},
};
try {
await addCategory(params);
this.$refs.refundFormData.resetFields();
this.$router.go(0);
} catch (error) {
console.error(error);
}
}
},
watch: {
addOrUpdateVisible: {
async handler(oldVal, newVal) {
this.showDialog = this.addOrUpdateVisible;
},
immediate: true
}
}
```
通过将异步操作使用async和await包裹,并使用try-catch语句处理错误,可以更清晰地编写异步代码。同时,将watch的handler函数也声明为async,并添加immediate选项,以便在组件加载时立即执行。
阅读全文