微任务和宏任务

在JavaScript中,任务分为两种类型:微任务和宏任务。

微任务是在当前任务执行完成后立即执行的任务,例如Promise回调、MutationObserver回调等。微任务的执行优先级高于宏任务。

宏任务是在当前任务执行完成后,等待一定时间后再执行的任务,例如setTimeout回调、setInterval回调、事件回调等。

在任务队列中,微任务排在宏任务之前执行。

例如以下代码:

console.log("start");

setTimeout(() => {
  console.log("setTimeout");
}, 0);

Promise.resolve().then(() => {
  console.log("promise");
});

console.log("end");

输出的结果为:

start
end
promise
setTimeout

原因是先执行同步代码输出start和end,然后遇到微任务,执行Promise回调输出promise,最后执行宏任务输出setTimeout。

相关推荐
loey_ln2 分钟前
webpack配置和打包性能优化
前端·webpack·性能优化
建群新人小猿3 分钟前
会员等级经验问题
android·开发语言·前端·javascript·php
爱上语文4 分钟前
HTML和CSS 表单、表格练习
前端·css·html
djk888814 分钟前
Layui Table 行号
前端·javascript·layui
007php00716 分钟前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
数据小小爬虫18 分钟前
如何利用Java爬虫获得1688店铺详情
java·开发语言
Tech Synapse18 分钟前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
biomooc30 分钟前
R语言/Rstudio 报错
开发语言·r语言
Theliars34 分钟前
C语言之字符串
c语言·开发语言
Root_Smile36 分钟前
【C++】类和对象
开发语言·c++