微任务和宏任务

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

相关推荐
_extraordinary_20 小时前
Java SpringMVC(二) --- 响应,综合性练习
java·开发语言
你的人类朋友20 小时前
什么是断言?
前端·后端·安全
FIN666821 小时前
昂瑞微:实现精准突破,攻坚射频“卡脖子”难题
前端·人工智能·安全·前端框架·信息与通信
椎49521 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
@。12421 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
我有一棵树21 小时前
前端图片加载失败、 img 出现裂图的原因全解析
前端
FIN666821 小时前
昂瑞微冲刺科创板:硬科技与资本市场的双向奔赴
前端·人工智能·科技·前端框架·智能
im_AMBER21 小时前
杂记 14
前端·笔记·学习·web
牧杉-惊蛰21 小时前
disable-devtool 网络安全 禁止打开控制台
前端·css·vue.js
C+ 安口木21 小时前
vue中监听window某个属性被添加或值的变化
前端·javascript·vue.js