【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回调会被加入微任务队列,而不是立即执行,必须等待当前宏任务中的同步代码执行完成后才会执行。

相关推荐
暮冬-  Gentle°2 小时前
C++中的命令模式实战
开发语言·c++·算法
Volunteer Technology5 小时前
架构面试题(一)
开发语言·架构·php
清水白石0085 小时前
Python 对象序列化深度解析:pickle、JSON 与自定义协议的取舍之道
开发语言·python·json
2401_876907525 小时前
Python机器学习实践指南
开发语言·python·机器学习
努力中的编程者6 小时前
栈和队列(C语言底层实现环形队列)
c语言·开发语言
程序员小寒6 小时前
前端性能优化之白屏、卡顿指标和网络环境采集篇
前端·javascript·网络·性能优化
码不停蹄Zzz6 小时前
C语言——神奇的static
java·c语言·开发语言
CoderCodingNo7 小时前
【GESP】C++七级考试大纲知识点梳理, (1) 数学库常用函数
开发语言·c++
老鱼说AI7 小时前
CUDA架构与高性能程序设计:异构数据并行计算
开发语言·c++·人工智能·算法·架构·cuda