js 事件循环
<script> setTimeout(() => { console.log("b"); }, 0); setTimeout(() => { console.log("c"); }, 10); new Promise((resolve, reject) => { resolve(); console.log("d"); }).then(() => { // 微任务 console.log("e"); }); requestAnimationFrame(function () { console.log('requestAnimationFrame') }) // 一定记住,先执行 宏任务及该宏任务下所有的微任务后,再执行 下一个宏任务及下一个宏任务下所有的微任务!!!,以此循环 // d e b requestAnimationFrame c /* console.log("d");这个就是正常的代码,不属于宏任务微任务,正常执行 宏任务有 script console.log("b"); console.log("c"); requestAnimationFrame 微任务有 console.log("e"); 属于script的微任务 script 宏任务梯队里 只有 console.log("e");这个微任务 所以当script( console.log("d"); )以及script里所有的微任务( console.log("e"); )运行后 再执行下一个宏任务(console.log("b");) =》 而宏任务(console.log("b");)里没有微任务,所以当宏任务(console.log("b");)执行后在执行下一个宏任务(console.log("c");),而宏任务(console.log("c");)同样没有微任务, =》 所以 宏任务(console.log("c"))执行后执行下一个宏任务requestAnimationFrame 而console.log("c");明显有10ms的延时,在这10ms期间, requestAnimationFrame肯定都已经打印了 但是 console.log("c")肯定是在 requestAnimationFrame 他之前执行的,只不过在10ms期间, requestAnimationFrame已经运行 */ </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具