[英]Nested promise resolution method
在下面的代碼中,當我調用func時,我會得到一個承諾,該承諾會在3秒鍾后分解為另一個承諾。 然后,嵌套的承諾在另外3秒鍾后解析為數字43。 我的問題是,為什么console.log在6秒后返回res:43而不是3秒后未解決的承諾。 我然后func2,但我再也沒有。
async function func(){
const val = func2().then((other)=>{console.log("res:"+other)})
}
async function func2(){
return new Promise(resolve => {
setTimeout(()=>resolve(otherfunc()),3000)
})
}
async function otherfunc(){
return new Promise(resolve => {
setTimeout(()=>resolve(43),3000)
})
}
您解決func2
另一個承諾是otherfunc()
所以func2
恰好解決3秒,然后調用之后otherfunc
其中有3秒后還可以解決。 您在console.log
語句中看到的結果顯示為43,因為.then()
將等待所有諾言完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.