[英]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.