江苏省网站建设_网站建设公司_前端工程师_seo优化
2026/3/2 22:34:59 网站建设 项目流程
// 理解事件循环的执行顺序 console.log('1. 同步任务开始'); setTimeout(() => { console.log('6. 宏任务执行'); }, 0); Promise.resolve().then(() => { console.log('4. 微任务执行'); }); console.log('2. 同步任务继续'); Promise.resolve().then(() => { console.log('5. 另一个微任务'); }); console.log('3. 同步任务结束'); // 输出顺序:1 2 3 4 5 6

代码执行步骤

  1. 同步任务执行
    • console.log('1. 同步任务开始');:这是一个同步任务,会立即执行并输出1.同步任务开始
    • console.log('2. 同步任务继续');:同样是同步任务,继续执行并输出2. 同步任务继续
    • console.log('3. 同步任务结束');:同步任务结束,输出3. 同步任务结束
  1. 异步任务处理
    • setTimeout(() => { console.log('6. 宏任务执行'); }, 0);setTimeout是一个宏任务,虽然设置的延迟时间为 0 毫秒,但它不会立即执行,会被放入宏任务队列,等当前调用栈清空后才会执行。
    • Promise.resolve().then(() => { console.log('4. 微任务执行'); });Promise.resolve().then(() => { console.log('5. 另一个微任务'); });Promisethen方法是微任务,会被放入微任务队列。当同步任务执行完后,会优先执行微任务队列中的所有任务。
  1. 最终执行顺序
    • 先执行所有同步任务,依次输出1. 同步任务开始2. 同步任务继续3. 同步任务结束
    • 接着执行微任务队列中的任务,依次输出4. 微任务执行5. 另一个微任务
    • 最后执行宏任务队列中的任务,输出6. 宏任务执行

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询