【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)!