微任务和宏任务

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

相关推荐
小草cys几秒前
HarmonyOS Next调用高德api获取实时天气,api接口
开发语言·python·arkts·鸿蒙·harmony os
爬山算法几秒前
Netty(25)Netty的序列化和反序列化机制是什么?
开发语言·python
C+++Python3 分钟前
Java 锁机制
java·开发语言
龘龍龙5 分钟前
Python基础学习(六)
开发语言·python·学习
得物技术11 分钟前
Ant Design 6.0 尝鲜:上手现代化组件开发|得物技术
前端
未来之窗软件服务16 分钟前
幽冥大陆(五十八)php1024位密码生成—东方仙盟筑基期
开发语言·算法·仙盟创梦ide·东方仙盟
孟祥_成都17 分钟前
前端和小白都能看懂的 LangChain Model 模块核心实战指南
前端·人工智能
wordbaby23 分钟前
配置 VS Code / Cursor 保存时自动格式化代码
前端
LYFlied28 分钟前
Spec Coding:AI时代前端开发的范式革新
前端·人工智能·工程化·spec coding
刺客xs32 分钟前
Qt ----- QT线程
开发语言·qt