異步相關及事件循環

異步相關面試

 1 // 今日頭條面試題
 2 async function async1() {
 3     console.log('async1 start')
 4     await async2()
 5     console.log('async1 end')
 6  }
 7  async function async2() {
 8     console.log('async2')
 9  }
10  console.log('script start')
11  setTimeout(function () {
12     console.log('settimeout')
13  })
14  async1()
15  new Promise(function (resolve) {
16     console.log('promise1')
17     resolve()
18  }).then(function () {
19     console.log('promise2')
20  })
21  console.log('script end')
  • script start 同步代碼
  • async1 start 同步代碼
  • async2 Promise是當即執行的,使用會先執行,這時console.log('async1 end')進入微任務中
  • promise1  Promise是當即執行的 這時console.log('promise2')進入微任務中
  • script end 同步代碼
  • async1 end 先執行微任務
  • promise2 先執行微任務
  • settimeout 執行宏任務
相關文章
相關標籤/搜索