前言
由于有很多表单需要进行校验,所以我想要提取表单验证的方法,使代码可读性提高,但是直接抽取出来,无法获取到表单验证的结果。
原本的写法
//添加精彩瞬间
async test1(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
//处理逻辑
} else {
return false;
}
});
},
async test2() {
this.$refs[formName].validate((valid) => {
if (valid) {
//处理逻辑
} else {
return false;
}
});
}
优化后的写法
将表单验证方法抽取成异步方法,等待结果返回即可
//表单验证
async submitForm(formName) {
return this.$refs[formName].validate().catch(() => { return false });
},
//添加精彩瞬间
async test1(formName) {
const flag = await this.submitForm(formName).catch(() => { });
if (flag) {
//处理逻辑
}
},
async test2(formName) {
const data = await this.submitForm(formName).catch(() => { });
if (data) {
//处理逻辑
}
}