当你需要一次性校验多个validate的时候怎么办?答案是利用Promise一次性校验多个validate
1.对要校验的数据进行封装
validateForm(){
console.log('this',this.$refs.form.$children);
return new Promise((resolve,reject)=
this.$refs.form.validate((isOk,callback)=>{
if (isOk){
callback();
resolve();
}else{
reject();
}
});
});
},
validateSchedulInfo(){
return new Promise((resolve,reject)=>{
this.$refs.schedulInfoRef.$children[0].validate((valid)=>{
if (valid){
resolve();
}else{
reject();
return false;
}
});
});
},
2.然后点击校验的按钮进行校验 利用的是Promise.all([]),只有全部的Promise全部为resolve()才能通过,有一个为reject都不能通过
confirm(){
// console.Log(this.form);
// promise.对多个校验进行判断,如果全部的Promise都通过的话就执行
Promise.all([
this.validateForm(),
this.validateSchedulInfo(),
])
.then(()=>{
console.log("校验通过");
this.save(type); // 通过的时候执行逻辑
})
.catch((err)=>{
console.log(err);
});
},