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

相关推荐
Eiceblue2 分钟前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
j7~6 分钟前
【C++ 面试笔记】(篇二):类与数据抽象 & STL 容器与算法
开发语言·c++·面试·stl容器和算法·类和数据抽象
Fuyo_111924 分钟前
深入解析 C++ unordered_set 与 unordered_map 的核心特性与性能实战
开发语言·c++
小大宇44 分钟前
Vue知识点-ElementPlus-05 输入框
前端·javascript·vue.js
ShineWinsu1 小时前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
外贸GEO优化1 小时前
外贸独立站的可抓取性:JS 渲染、懒加载与无限滚动到底影响什么
开发语言·javascript·ecmascript
飞浪纪元[FWC–FE]1 小时前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
web打印社区1 小时前
Lodop在Edge和双核浏览器-先分清内核
前端·javascript·edge·pdf·ecmascript·html5
后台模板学习1 小时前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang