微任务和宏任务

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

相关推荐
Humbunklung13 小时前
WMO 天气代码(Code Table 4677)深度解析与应用报告
开发语言·数据库·python
csbysj202013 小时前
Linux 文件基本属性
开发语言
爱看老照片13 小时前
uniapp传递数值(数字)时需要使用v-bind的形式(加上冒号)
javascript·vue.js·uni-app
#做一个清醒的人13 小时前
Electron 保活方案:用子进程彻底解决原生插件崩溃问题
前端·electron·node.js
四千岁13 小时前
Obsidian + jsDelivr + PicGo = 免费无限图床:一键上传,全平台粘贴即发
前端·程序员·github
慧一居士13 小时前
CSS中 ::deep 作用,使用场景,使用方法介绍
前端·css·vue.js
weixin_4492900114 小时前
uv打包Python为exe步骤
开发语言·python·uv
周聪灬14 小时前
iOS runtime(2)-class结构和消息转发机制
前端
周聪灬14 小时前
浅谈对Objective-C的对象本质的理解
前端
掘金安东尼14 小时前
⏰前端周刊第 459 期v2026.4.3
前端·javascript·面试