微任务和宏任务

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

相关推荐
Jack_David3 分钟前
Java如何生成Jwt之使用Hutool实现Jwt
java·开发语言·jwt
css趣多多3 分钟前
Vue过滤器
前端·javascript·vue.js
瑞雪兆丰年兮5 分钟前
[从0开始学Java|第六天]Java方法
java·开发语言
u01092727120 分钟前
模板编译期排序算法
开发语言·c++·算法
datalover26 分钟前
CompletableFuture 使用示例
java·开发语言
理人综艺好会28 分钟前
Web学习之用户认证
前端·学习
●VON34 分钟前
React Native for OpenHarmony:项目目录结构与跨平台构建流程详解
javascript·学习·react native·react.js·架构·跨平台·von
m0_6860416135 分钟前
C++中的适配器模式变体
开发语言·c++·算法
清风~徐~来40 分钟前
【视频点播系统】WebSocketpp 介绍及使用
开发语言
We་ct1 小时前
LeetCode 36. 有效的数独:Set实现哈希表最优解
前端·算法·leetcode·typescript·散列表