自学内容网 自学内容网

【JS】微任务和宏任务执行顺序

JavaScript中的宏任务(Macro Task)和微任务(Micro Task)执行顺序遵循一个规则:先执行当前宏任务的所有微任务,然后再执行下一个宏任务。

常见的宏任务包括:

  • 整体的脚本代码
  • setTimeout
  • setInterval
  • I/O操作
  • UI渲染
  • setImmediate(Node.js 环境)

常见的微任务包括:

  • Promise
  • Object.observe(已废弃)
  • MutationObserver(HTML5新增)
  • process.nextTick(Node.js 环境)

示例代码:

console.log('script start');
 
setTimeout(function() {
  console.log('setTimeout');
}, 0);
 
Promise.resolve().then(function() {
  console.log('promise1');
}).then(function() {
  console.log('promise2');
});
 
console.log('script end');
 
// 输出顺序为:
// script start
// script end
// promise1
// promise2
// setTimeout

在这个例子中,首先执行整体脚本的代码(宏任务),然后是Promise中的两个then方法注册的回调(微任务),最后是setTimeout(宏任务)。


原文地址:https://blog.csdn.net/qq_22639647/article/details/142791368

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!