我使用 async 实现了一个函数,但它不起作用。它总是立即解决并且result
总是未定义的。
这是原始的异步版本:
async function validateOne(item, type, state) {
const validation = VALIDATIONS[type]
const result = !(await validation.check(state[item.name].value, state))
return result || validation.message
}
我不知道为什么它不起作用,所以我使用 Promise 重写了它,它工作正常。
function validateOne(item, type, state) {
const validation = VALIDATIONS[type]
return new Promise(resolve => {
validation.check(state[item.name].value, state).then(result =>
resolve(result || validation.message)
)
})
}
我很困惑,因为在我看来这两个实现应该是相同的(显然它们不是)。希望这是显而易见的,在此先感谢您的任何见解!