簡體   English   中英

如何使用承諾等待函數執行以等待其在 Javascript/Node JS 中的回調

[英]How to wait for a function to be executed using promise to wait on its callback in Javascript/Node JS

我有兩個函數說async foo()bar()

讓我們說foo() exe 時間 => 5 秒

bar()時間 => 10 秒

代碼看起來像

await foo();

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

問題:

這里foo()執行(主體部分foo()需要 5 秒,因此它返回一個成功的承諾,而無需等待bar()的執行完成

題:

我如何確保foo()僅在bar()完成其執行時才返回承諾,也許使用承諾等待bar()的回調,但我不確定如何確切地去做

注意:不能將 bar 聲明為異步,因為它是從其他模塊導入的

您可以promisify的方法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)
       }
    }

你可以試試下面的代碼

await foo();

    foo() {
        return new Promise(async resolve => {
           const result =await bar()
              if (result) {
                resolve(true)   
              }

        })
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM