关于一个promise的同步问题

65 阅读1分钟

Promise的返回值

最近遇到一个需求,在做表单验证的时候,某个组件接受的props是一个验证函数,函数返回值最后返回结果决定组件的验证结果。

核心伪代码如下:

组件接受props正常的情况下接收的参数为一个验证函数:

function isValid () {
    return true | false;
}

当验证需要异步操作,比如结果是通过http请求获取的时候:

提出以下问题

function isValid () {
    const promise = new Promise(resolve=>{
        // 这里使用一个定时器模拟请求
        setTimeout(()=>{
            return true;
        },3000)
    })
    promise.then(valid => {
        // then里面的valid如何暴露出供函数返回值
        return valid;
    })
    // valid 怎么接收 .then的值?
    return valid:(true | false);
}

请教如何实现?感谢大佬们悉心照顾