浏览器事件循环

image-20250206104940459

宏任务

  • 浏览器执行的异步代码
  • eg:JS执行脚本事件、setTimeout/setInterval,ajax请求完成事件、用户交互事件等

微任务

  • Js引擎执行的异步代码
  • eg:Promise对象.then()的回调

注意:Promise本身是同步的

JS内代码执行流程

执行script脚本事件宏任务里面的同步代码,遇到宏任务/微任务交给宿主环境,有结果回调函数进入对应队列,当执行栈空闲时候,清空宏任务队列,再执行下一个微任务

console.log(1)
setTimeout(()=>{
    console.log(2)
}, 0)

const p = new Promise((resolve, reject)=>{
    console.log(3)
    resolve(4)
})

p.then(result => {
    console.log(result)
})
console.log(5)

输出1 3 5 4 2

posted @   Sherioc  阅读(8)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
主题色彩