Javascript微任务运行机制-Chrome开发者文章
详实的案例,Chrome开发者写的文章,非常清楚地展示了微任务在不同浏览器中的运行机制和差异,特别用视觉化的方式一步一步展示案例运行。

1、用户点击事件:内外两层div之间冒泡的回调,是异步的,作为两次task运行;此时,每次回调中的微任务应该在该回调结束时马上运行。

2、模拟用户点事件:HTMLElement.click(),是同步的,从内到外冒泡过程中的所有回调是作为一个任务完成。所有回调中的微任务会在这些回调完成调用。这种机制可以保证事件冒泡过程不被微任务打断。

 

In summary:

  • Tasks execute in order, and the browser may render between them
  • Microtasks execute in order, and are executed:
    • after every callback, as long as no other JavaScript is mid-execution
    • at the end of each task
原文地址>>