请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师执行下面代码,为什么输出的是1 3 5 7 2 5 7 6 6 4,而不是1 3 5 7 2 5 7 4 6 6

async function fn1(){
  console.log(3)
  await fn2()
  //异步
  console.log(4)
}

async function fn2(){
  console.log(5)
  await fn3()
  // 异步
  console.log(6)
}

async function fn3(){
  console.log(7)
}

console.log(1)
fn1()
console.log(2)
fn2()
//1 3 5 7 2 5 7 6 6 4

正在回答

1回答

双越 2020-08-11 09:35:45

你就看第一个函数 fn1 ,执行 fn1 时得先把内部的 await fn2()  执行完了,最后再执行 console.log(4) ,对吧?

所以,无论怎么算,4 都是最后输出的。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉1048545496 #1
    谢谢提点,非常感谢!
    回复 有任何疑惑可以回复我~ 2020-08-11 14:22:12
  • 双越 回复 提问者 慕粉1048545496 #2
    客气了。我这种提点方式,你感觉还好吧?比详细的解释更加有效果,引导你自己去思考。
    回复 有任何疑惑可以回复我~ 2020-08-11 21:28:45
  • 可是最后执行的是fn2,我觉得答案应该是
    1 3 5 7 2 5 7 6 4 6
    回复 有任何疑惑可以回复我~ 2021-01-20 11:40:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信