【js】Javascript事件循环机制

【日期】:20260203

【问题】:

这段代码输出什么

javascript 复制代码
const promise = new Promise((resolve, reject) => {
console.log(1);
setTimeout(() => {
console.log("timerStart");
resolve("success");
console.log("timerEnd");
}, 0);
console.log(2);
});

promise.then((res) => {
console.log(res);
});

console.log(4);

【原因】:

先执行所有同步代码

再执行微任务队列

最后执行宏任务队列

【总结】

resolve调用后,then回调会被加入微任务队列,而不是立即执行,必须等待当前宏任务中的同步代码执行完成后才会执行。

相关推荐
IT 行者32 分钟前
Web逆向工程AI工具:JSHook MCP,80+专业工具让Claude变JS逆向大师
开发语言·javascript·ecmascript·逆向
程序员 沐阳2 小时前
JavaScript 内存与引用:深究深浅拷贝、垃圾回收与 WeakMap/WeakSet
开发语言·javascript·ecmascript
Mr_Xuhhh3 小时前
Java泛型进阶:从基础到高级特性完全指南
开发语言·windows·python
He1955013 小时前
wordpress搭建块
开发语言·wordpress·古腾堡·wordpress块
老天文学家了3 小时前
蓝桥杯备战Python
开发语言·python
赫瑞3 小时前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
初夏睡觉4 小时前
c++1.3(变量与常量,简单数学运算详解),草稿公放
开发语言·c++
升职佳兴4 小时前
C盘爆满自救:3步无损迁移应用数据到E盘(含回滚)
c语言·开发语言
ID_180079054734 小时前
除了 Python,还有哪些语言可以解析 JSON 数据?
开发语言·python·json
cyclv4 小时前
无网络地图展示轨迹,地图瓦片下载,绘制管线
前端·javascript