1. console.log('本轮任务');
    2. new Promise((resolve, reject) => {
    3. resolve(3)
    4. }).then(() => {
    5. console.log('本轮微任务');
    6. })
    7. document.getElementById('div').addEventListener('click', () => { console.log('click'); })
    8. document.getElementById('div').click()

    首先答案是

    1. 本轮任务
    2. click
    3. 本轮微任务

    由于单步跟踪了以上三个链路的代码,耗时不少,好处则是可以很清楚的给出 chromium 这一种浏览器的调试关键点和一些歪门邪道的知识来作为补充内容。
    在 V8 的 microtask-queue 实现中,是会对 Microtasks scope depth 计数的