ES6中,promise是经常使用的对象。
通过promise实例,可以实现对异步代码的封装,保证当异步代码执行完成后再执行后续处理代码。
Promise的基本使用
resolve函数的结果可以通过then()方法接收,reject函数的结果可以被catch()方法接收
valid(){
return new Promise((resolve,reject)=>{
if(this.flag){
return resolve(true)
}
this.$refs.form.validate((valid) => {
if(valid){
resolve(valid)
}
else{
reject(valid);
}
})
})
}
因为element-ui中的表单自带validate操作是异步操作,所以我将校验方法封装在Promise实例中,当校验过程结束后调用then方法就可以执行后续的操作。
当promise对象实例化的时候,就会执行promise内部的代码。
注意,promise实例只能保证其内部的异步操作执行完成后,再被then或者catch方法捕捉。
同时,回调函数resolve和reject并不代表内部代码的执行停止
如下所示。