微任务和宏任务

在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。

相关推荐
林希_Rachel_傻希希2 分钟前
web性能优化之——AI总结视频
前端·javascript·面试
pp起床3 分钟前
黑马点评 - 短信验证码登录实现
java·开发语言·tomcat
芒鸽4 分钟前
在仓颉语言里造一个没有反射的服务端框架
开发语言·华为·harmonyos
前端炒粉8 分钟前
个人简历面经总结二
前端·网络·vue.js·react.js·面试
CodeStats13 分钟前
《源纹天书》第121-125章:源匠归来——全栈重构与归元圣域的2.0时代
java·开发语言·源纹天书
binbin_5214 分钟前
UIAbility 与 WindowStage:窗口创建、加载、销毁的完整链路
开发语言·javascript·深度学习·华为·harmonyos
AI人工智能+电脑小能手15 分钟前
【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域
java·开发语言·spring·面试
用户0595401744622 分钟前
用了半年 LangChain Memory,才发现回滚测试压根没测对
前端·css
木木的木云25 分钟前
从零构建微前端框架:PavilionMfe 设计揭秘
前端·架构·vite
weedsfly32 分钟前
Cookie 安全三属性:HttpOnly、Secure、SameSite 分别防什么?
前端·javascript·面试