js的EventLoop事件循环机制调用栈、微任务、消息队列执行顺序优先级

简介: js的EventLoop事件循环机制调用栈、微任务、消息队列执行顺序优先级

优先级是调用栈 > 微任务 > 消息队列

// 调用栈
function func() {
    console.log("func");
}

// 消息队列
setTimeout(() => {
    console.log("setTimeout");
}, 0)


var p = new Promise((resolve, reject) => {
    console.log("Promise");
    resolve()
})

// 微任务
p.then(() => {
    console.log("then");
})

func()
/**
 * 执行结果
 Promise
 func
 then
 setTimeout
 */

参考

2分钟了解 JavaScript Event Loop | 面试必备

            </div>
目录
相关文章
|
JavaScript 前端开发
【面试题】最详尽的 JS 原型与原型链终极详解(一)
【面试题】最详尽的 JS 原型与原型链终极详解(一)
422 0
|
Python
Markdown 拓展-Docsify 主题美化
docsify-themeable - A delightfully simple theme system for docsify.js https://jhildenbiddle.github.io/docsify-themeable/#/
1488 0
|
Java Android开发 API
Android电源管理系列之PowerManagerService(二)
WakeLock机制 PowerManager.WakeLock 为了延长电池的使用寿命,Android设备会在一段时间后使屏幕变暗,然后关闭屏幕显示,直至停止CPU进入休眠。
2068 0
nrm 安装后报错 Error [ERR_REQUIRE_ESM]: require() of ES Module
nrm 安装后报错 Error [ERR_REQUIRE_ESM]: require() of ES Module
1261 0
|
人工智能 自然语言处理 前端开发
人工智能如何影响前端开发
【6月更文挑战第1天】人工智能如何影响前端开发
479 3
|
存储 JavaScript 前端开发
JS的执行原理,一文了解Event Loop事件循环、微任务、宏任务
了解JavaScript的事件循环和任务队列对于处理异步任务至关重要。事件循环由主线程和任务队列组成,当主线程执行完同步任务后,会检查任务队列,按顺序执行宏任务和微任务。宏任务包括`setTimeout`等,微任务如`Promise`的回调。在实际开发中,事件循环保证了代码的非阻塞执行,提高了用户体验。例如,`setTimeout`的回调会在当前宏任务结束后,所有微任务执行完才会执行。理解这一机制对于解决面试中的异步问题非常有帮助。
485 0
JS的执行原理,一文了解Event Loop事件循环、微任务、宏任务
|
存储 缓存 内存技术
计算机硬件存储器中临时存储
【8月更文挑战第3天】
2981 7
计算机硬件存储器中临时存储
|
Java Maven
Mac Maven环境变量配置 zsh: command not found: mvn
Mac Maven环境变量配置 zsh: command not found: mvn
1080 0
|
安全 Java 数据安全/隐私保护
使用Spring Security实现细粒度的权限控制
使用Spring Security实现细粒度的权限控制
|
安全 开发工具 git
蓝易云 - git rebase和merge区别
在选择使用Merge还是Rebase时,需要根据具体的工作流程和团队的规定来决定。一般来说,如果你想保持完整的历史记录并且避免可能的冲突,你应该使用Merge。如果你想要一个干净的、线性的历史记录,你可以使用Rebase。
742 4