back to catalog
mutation events vs promise

      const btn = document.getElementById('btn')
      const btn2 = document.getElementById('btn2')
  
      btn.addEventListener('click', () => {
        Promise.resolve().then(() => console.log('Microtask 1'))
        console.log('Listener 1')
      }, false)
  
      btn.addEventListener('click', () => {
        Promise.resolve().then(() => console.log('Microtask 2'))
        console.log('Listener 2')
      }, false)
  
      btn2.onclick = () => {
        // 实验证明: click方法和两个callback是同步执行的
        // 在两个callback执行完之前,btn.click一直在调用栈中,
        // 所以在第一个callback执行完后,会继续执行第二个,
        // 因为task queue 还没清空, 此时是不会执行micro task queue的
        btn.click()
        console.log('simulate click2')
      }
      console.log('start')