簡體   English   中英

嵌套承諾解析方法

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

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