说下自己的理解,如有不正确望大佬指正 //首先script作为第一个宏任务进入主线程,遇到promise.then放到微任务Event Queue中,记为p1,遇到new promise里的console.log直接输出3,then被分发到微任务Event Queue中,记为p2 //遇到第一个setTimeout,其回调函数被分发到宏任务Event Queue中。记为setTimeout1 //又遇到了第二个setTimeout,其回调函数被分发到宏任务Event Queue中,记为setTimeout2 //一轮过后就输出了3 //然后查看微任务Event Queue,发现p1和p2,输出2,4 //此时第一轮事件循环正式结束 //然后查看宏任务Event Queue,发现setTimeout1,promise.then放入微任务Event Queue,setTimeout放入宏任务,记录setTimeout3, //查看微任务event queue,输出5,此时第二个宏任务结束, //查看宏任务Event Queue,发现setTimeout2,执行输出6,此时第三轮宏任务结束 //查看宏任务Event Queue,发现setTimeout3,执行输出7 //结果应该是3,2,4,5,6,7
点赞 2

相关推荐

牛客网
牛客企业服务