本文介绍: 由浏览器Web API管理异步代码,如果有结果后,会根据这个异步代码类型,被放入对应的微任务或宏任务当中。当执行栈的任务同步代码)全部执行完毕后,再执行完所有微任务回调然后再执行完所有宏任务回调。在一次循环当中,微任务永远在宏任务之前执行。

1.知识点

事件循环:

2.例题

1.

2.

3.

4.

5.

6.asyncawait事件循环的综合

      console.log('123')
      async function f() {
        console.log('start')
        await p
        console.log('end')
      }
      let p = new Promise((resolve) => {
        console.log('a')
        resolve('ok')
      }).then(function () {
        console.log('b')
      })
      console.log('456')
      setTimeout(function () {
        console.log('setTimeout1')
      }, 0)
      f()
      let p2 = new Promise((resolve) => {
        console.log('c')
        setTimeout(function () {
          resolve()
          console.log('setTimeout2')
        }, 0)
      }).then(function () {
        console.log('d')
      })
      console.log('789')

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注