首页 > 解决方案 > 如何使用 Promise 等待函数执行以等待其在 Javascript/Node JS 中的回调

问题描述

我有两个功能说async foo()bar()

可以说exe时间foo()=> 5秒

exe时间 bar()=> 10秒

代码看起来像

await foo();

async foo(){
//body 
bar()
}

问题:

这里foo()需要 5 秒来执行(主体部分)所以它返回一个成功的承诺,而无需等待执行bar()完成

问题:

我如何确保foo()仅在完成执行时返回一个承诺,bar()可能使用承诺等待回调,bar()但我不确定如何准确执行它

注意:不能将 bar 声明为异步,因为它是从其他模块导入的

标签: javascriptnode.jspromise

解决方案


您可以aws-sdk通过在方法后面附加 ; 来承诺服务的方法.promise

await foo();

foo(){
  return ses.sendTemplatedEmail(params).promise();
}

或者

    await foo();

    async foo(){
      try {
        let res = await ses.sendTemplatedEmail(params).promise();
        console.log(res)
     }catch(err) {
        console.log(err)
       }
    }

推荐阅读