前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript进阶----宏任务与微任务

JavaScript进阶----宏任务与微任务

原创
作者头像
软件架构师Michael
发布2022-08-14 09:43:28
5630
发布2022-08-14 09:43:28
举报
文章被收录于专栏:软件工程师Michael

JavaScript中有哪些宏任务与微任务呢?

宏任务:script代码,setTimeout,setInterval

微任务:Promise,process.nextTick

不同类型的任务会进入对应的任务队列。 事件循环的顺序,决定js代码的执行顺序

进入整体代码(宏任务)后,开始第一次循环。

接着执行所有的微任务。然后再次从宏任务开始,找到其中一个任务队列执行完毕,再执行所有的微任务

代码语言:javascript
复制
console.log(1);
setTimeout(function() {
    console.log(2)
},1000);

new Promise(function(resolve) {
    console.log(3);
    resolve();
}
).then(function() {
    console.log(4)
});
console.log(5);
/*
    为什么是这样呢?因为以同步异步的方式来解释执行机制是不准确的,更加准确的方式是宏任务和微任务:
    因此执行机制便为:执行宏任务 ===> 执行微任务 ===> 执行另一个宏任务 ===> 不断循环
        即:在一个事件循环中,执行第一个宏任务,宏任务执行结束,执行当前事件循环中的微任务,
执行完毕之后进入下一个事件循环中,或者说执行下一个宏任务
*/

【小结】

接触了宏任务与微任务后,可以帮助更好地理解同步与异步任务。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档