方法1:把我们自定义方法里的异步Promise 事件 return 出去
方法2:所有的异步事件都用await 语法糖去写。
例如
//推荐写法 可读性更好
await 语法糖会自动return 出异步的Promise
export function submit(context) {
let _form = context.getComponent('_form_comp_key');
await _form.validate()
console.log('验证成功了')
const request = context.request;
await request('produce_target','inset',_form.getValues())
console.log('提交成功了')
}
//异步回调写法 所有异步函数注意需要return出来
export function submit(context) {
let _form = context.getComponent('_form_comp_key');
const request = context.request;
return _form.validate().then(()=>{
console.log('验证成功了')
return request('produce_target','inset',_form.getValues()).then(()=>{
console.log('提交成功了')
})
},()=>{
console.log('验证失败了');
})
}
//一个普通绑定按钮事件 函数就希望按钮的loading 延迟2秒
export function submit(context) {
console.log('点击了')
return new Promise((resolve,reject)=>{
setTimeOut(()=>{
resolve()
},2000)
})
}
当绑定按钮的事件通过以上两种写法 的时 按钮可以接收到返回的Promise 按钮的loading 状态 就会在所有异步事件结束后重置