微任务和宏任务

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

相关推荐
cong_21 小时前
狐蒂云🦊跑路我的摸鱼岛没了!
前端·后端·github
平安的平安21 小时前
Python大模型Function Calling实战:让AI拥有工具使用能力
开发语言·人工智能·python
kyriewen111 天前
我开发的 Chrome 扒图浏览器插件又更新了❗
前端·javascript·chrome·科技·ai
xyq20241 天前
Vue.js 实例
开发语言
Data_Journal1 天前
Puppeteer指纹识别指南:循序渐进,简单易学!
服务器·前端·人工智能·物联网·媒体
敲代码的瓦龙1 天前
Android?碎片!!!
java·开发语言·android-studio
froginwe111 天前
SVG 滤镜:全面解析与高效应用
开发语言
枫叶丹41 天前
【HarmonyOS 6.0】Data Augmentation Kit端侧问答模型:本地化智能问答的技术演进
开发语言·华为·harmonyos
醉舞经阁半卷书11 天前
LangGraph详解
开发语言·人工智能·python·深度学习·机器学习·自然语言处理
geovindu1 天前
go:Condition Variable Pattern
开发语言·后端·设计模式·golang·条件变量模式