微任务和宏任务

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

相关推荐
一路向前的月光1 分钟前
前端采用electron-hiprint控件实现静默打印
前端·javascript·electron
LegendNoTitle5 分钟前
Windows和Linux下Rust-init、Cargo下载慢的解决
开发语言·windows·rust
Jagger_7 分钟前
AI还原设计稿方法
前端
毛小茛11 分钟前
pnpm 已经安装成功,但 npm 的全局 bin 目录没有进 PATH
前端·npm·node.js
亓才孓11 分钟前
深浅拷贝--Java
java·开发语言·windows
潲爺15 分钟前
Java笔记总结
java·开发语言·笔记·学习
菜的不敢吱声17 分钟前
swift学习第一天
开发语言·学习·swift
培林将军19 分钟前
C语言指针
c语言·开发语言·算法
云栖梦泽22 分钟前
鸿蒙分布式应用全链路性能调优实战
开发语言·鸿蒙系统
yongui4783427 分钟前
基于卡尔曼滤波的电池荷电状态(SOC)估计的MATLAB实现
开发语言·算法·matlab