element ui中表单的validate方法如果是同步的话,在他的回调函数中抛出一个异常,外层的try..catch应该是可以捕获到的,但是实际上try..catch并不能捕获到异常,如果validate方法异步的话,那在validate方法之后的代码应该早于validate中的回调函数中的代码行,但是实际上却是晚于回调函数中的代码行执行,这种互相矛盾的现象要怎么解释?
<xui-form ref="queryFormA8" :model="queryDataA8" label-width="150px" :rules="formRules">
<xui-col :span="8">
<xui-form-item label="我是A" prop="name">
<xui-input v-model="queryDataA8.name" clearable></xui-input>
</xui-form-item>
</xui-col>
</xui-form>
formRules: { name: [{ required: true, trigger: 'blur' }] },
console.log(1);
try {
this.$refs['queryFormA8'].validate(valid => {
console.log(2);
if (!valid) {
throw new Error('异常被捕获了');
}
});
} catch (error) {
console.log(error);
}
console.log(4);
这段代码的执行结果是1234;
console.log(1);
try {
this.$refs['queryFormA8'].validate(valid => {
console.log(2);
if (!valid) {
console.log(3);
}
});
} catch (error) {
console.log(error);
}
console.log(4);
这段代码的执行结果是123