前言:Promise是很好处理异步执行顺序的工具,常常会遇到表单校验的情况,因此离不开布尔值的判断。
/**
* 验证短信验证码是否正确
* @returns {Boolean}
*/
async verifyCodePassed() {
const { mobileNo, dxId } = this;
const params = {
mobileNo,
smsCode: this.pTokenName,
dxId
};
//return true 或者 false
//1.这里await必须加,因为发请求函数是异步函数,直接return就return了一个undefined
return await this.$req.post(this.$globalVariable.apiList.verifyMobileCode, params).then(() => true).catch(() => false);
},
/**
* 验证短信blur事件
*/
async verifyHandler() {
if(!this.dxId) {
this.$tool.showModal("请先获取验证码");
return false;
}
if(!this.num) {
this.$tool.showModal("验证码不能为空");
return false;
}
//return 判断true还是fasle
//2.这里await必须加,函数是异步函数,虽然异步函数内部有await,但外部语句并不会等函数内部语句的await,简言之,await仅在函数作用域内有效。
if (await this.verifyCodePassed()) {
return true;
}
return false;
},