微任务和宏任务

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

相关推荐
wuk99814 分钟前
基于MATLAB/Simulink实现交流异步电动机矢量控制的仿真
开发语言·matlab
零度@17 分钟前
30条Java性能优化清单
java·开发语言
Komorebi゛17 分钟前
【Vue3+Element Plus】el-dialog弹窗点击遮罩层无法关闭弹窗问题记录
前端·vue.js·elementui
期待のcode23 分钟前
Java的包装类
java·开发语言
vim怎么退出25 分钟前
一次线上样式问题复盘:当你钻进 CSS 牛角尖时,问题可能根本不在 CSS
前端·css
aloha_78928 分钟前
python基础面经八股
开发语言·python
echo_e32 分钟前
手搓前端虚拟列表
前端
用泥种荷花40 分钟前
【LangChain学习笔记】创建智能体
前端
雾岛听蓝44 分钟前
C++:模拟实现string类
开发语言·c++