消息队列的优先级:
    微任务第一
    交互队列第二
    网络队列第三
    延时队列第四
    
    
    
      // 死循环指定的时间
      function delay(duration) {
        var start = Date.now()
        while (Date.now() - start < duration) {}
      }
      function addDelay() {
        console.log('添加延时队列')
        setTimeout(() => {
          console.log('延时队列执行')
        }, 100)
      }
      function addNetWork() {
        console.log('添加网络队列')
        fetch('./demo2.js').then(() => {
          console.log('网络队列执行')
        })
      }
      function addInteraction() {
        console.log('添加交互队列')
        interaction.onclick = function () {
          console.log('交互队列执行')
        }
        delay(3000)
      }
      begin.onclick = function () {
        addDelay()
        addNetWork()
        addInteraction()
        Promise.resolve().then(() => {
          console.log('微任务执行')
        })
        console.log('添加微任务')
        console.log('===========')
      }