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

相关推荐
飘逸飘逸2 分钟前
Autojs进阶前言
android·javascript
叫我一声阿雷吧9 分钟前
JS 入门通关手册(01)|零基础入门:JavaScript 到底是什么?学完能干嘛?
javascript·前端入门·js入门
等D春C夏X12 分钟前
最终版C++11/14/17学习大纲(精准核对42条条款)
java·开发语言
iameyama1 小时前
Amazon Redshift 和 BigQuery 数据类型区别
java·开发语言
-孤存-1 小时前
Spring Bean作用域与生命周期全解析
java·开发语言·前端
Remember_9931 小时前
SpringCloud:Nacos注册中心
java·开发语言·后端·算法·spring·spring cloud·list
hello kitty w1 小时前
3.小程序方法的封装
javascript·小程序
几何心凉1 小时前
AI时代结合Haystack实现自定义数据抓取工具
开发语言
浮桥2 小时前
uniapp + h5实现悬浮活动按钮组件
前端·javascript·uni-app