如何通过async,await将promise转为同步?

写了一个组件,提供一个 Function 类型的属性,如果父组件传递该参数,那么就会执行一个ajax异步校验,伪代码如下:

checkDup() axios封装的api请求,返回promise,结果bool 类型;

//如果需要检查,且检查不重复

if(this.checkDup && !this.checkDup(id)) {
    this.logicBlock(); //执行逻辑代码块
}else{
    this.logicBlock(); //执行逻辑代码块
}

因为 logicBlock 代码块比较多,并且也不希望提取成方法,所以我就想能不能 等待 checkDup 执行完了,再执行后面的代码呢?如下:

//如果需要检查,并且检查结果为重复
if(this.checkDup && this.checkDup(id)) {
    return false //不再往下执行 logicBlock()
}
this.logicBlock(); //执行逻辑代码块
阅读 5k
2 个回答
// 假如这是一个async方法体
if(this.checkDup) {
    await this.checkDup(xxxxx)
}
this.logicBlock()
async fun() {
    // 假如这是一个async方法体
    if(this.checkDup) {
        await this.checkDup(xxxxx)
    }
    this.logicBlock()
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题