微任务和宏任务

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

相关推荐
AAD555888991 分钟前
光伏组件检测与识别基于RPN_X101-FPN模型实现含Python源码_1
开发语言·python
梦6502 分钟前
React 类组件与函数式组件
前端·javascript·react.js
Coder_Boy_3 分钟前
基于SpringAI的在线考试系统-成绩管理功能实现方案
开发语言·前端·javascript·人工智能·spring boot
ajole5 分钟前
C++学习笔记——stack和queue
开发语言·数据结构·c++·笔记·学习·stl·学习方法
moxiaoran57537 分钟前
Go语言并发处理
开发语言·后端·golang
小旭95277 分钟前
【Java 基础】泛型<T>
java·开发语言·intellij-idea
幻云20108 分钟前
Python深度学习:从筑基与巅峰
前端·javascript·vue.js·人工智能·python
Light608 分钟前
庖丁解牛:深入JavaScript内存管理,从内存泄漏到AI赋能的性能优化
javascript·人工智能·性能优化·内存管理·垃圾回收·内存泄漏·v8引擎
Tony Bai9 分钟前
AI 时代,Go 语言会“失宠”还是“封神”?—— GopherCon 2025 圆桌深度复盘
开发语言·人工智能·后端·golang
_OP_CHEN12 分钟前
【前端开发之HTML】(三)HTML 常见标签(下):图文、链接与实战,解锁网页交互新姿势!
前端·html·交互·前端开发·网页开发·界面美化