function multiFormValidate(formRefs = [], exec) {
let promise
console.log('验证函数开始执行,打印回调函数类型', typeof exec)
if (typeof exec !== 'function') {
promise = new Promise((resolve, reject) => {
exec = function (valid) {
// valid ? resolve(valid) : reject(valid)
console.log('没有传入回调函数,生成回调函数', valid)
resolve(valid)
}
})
}
Promise.all(
formRefs.map(it => {
if (it) {
// return Promise.resolve()
return Promise.reject(new Error('faile'))
}
})
)
.then(res => {
console.log('校验通过,执行回调函数')
exec(true)
})
.catch(e => {
console.log('校验未通过,不会执行回调函数', JSON.stringify(e))
if (promise) {
console.log('校验未通过,且没有传入回调函', JSON.stringify(e))
exec(false)
}
})
if (promise) {
console.log('promise', JSON.stringify(promise))
return promise
}
}
async function save(){
const temp = await multiFormValidate([{ flag: true }])
if (!temp) {
console.log('校验结果为false')
}else{
console.log('校验结果为true')
}
console.log("@###", temp)
}
function save1(){
multiFormValidate([{ flag: true }],()=>{
console.log('回调函数执行了')
})
}
save()
// save1()
console