当前位置: 首页 > news >正文

[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解

最近看了一个帖子

事件循环机制-宏任务-微任务

把js单线程中 , 主线程 | 宏任务 | 微任务 的调用顺序讲解的很直白精巧 , 记录一下以供查阅

1.主线程, 可以理解为从上到下顺序执行的一个js线程
2. 宏任务 script / setTimeOut /setInterval等
3. 微任务主要有promise等
4. 热知识: new Promise 也算主线程

执行的顺序 我们可以这样理解

1.主线程内顺序执行
2.遇到 setTimeout等宏任务, 会把宏任务的回调代码放到 宏任务队列中排队
3.遇到 promise等微任务, 会把微任务(如.then)的回调代码 放到 微任务队列中排队执行
4.主线程完全执行完毕了, 再开始处理 宏任务队列微任务队列, 且 优先将微任务队列清空完毕,再完成宏任务队列的代码执行
5.当遇到 new Promise, 把他当做 主线程执行即可.

在这里插入图片描述

在这里插入图片描述

题3:


console.log(1);
setTimeout(function() {console.log(2);
}, 0);
new Promise(function(resolve) {console.log(3);resolve(Date.now());
}).then(function() {console.log(4);
});
console.log(5);
setTimeout(function() {new Promise(function(resolve) {console.log(6);resolve(Date.now());}).then(function() {console.log(7);});
}, 0);/// answer : 1 3  5  4 2  6 7
http://www.lryc.cn/news/39236.html

相关文章:

  • 顺序表和链表的比较
  • Java为什么只能单继承???
  • 数据安全-分类分级 调研分析报告
  • 浏览器对象详解
  • 异步电路后端实现流程(cdc signOff 后端做什么)
  • Linux网络编程实战介绍
  • C++概述 课堂笔记
  • 一文读懂SpringBoot整合Elasticsearch(一)
  • (数论)(枚举)(前缀和)1230. K倍区间
  • 万字带你深入理解 Linux 虚拟内存管理(下)
  • 【iOS】—— JSONModel源码学习
  • 单片机怎么实现真正的多线程?
  • 【LeetCode】剑指 Offer(23)
  • [免费专栏] 汽车威胁狩猎之不应该相信的几个威胁狩猎误区
  • LinuxFTP文件传输服务和DNS域名解析服务
  • 二叉搜索树原理及底层实现
  • python自动化办公(一)
  • LeetCode - 198 打家劫舍
  • 简单粗暴的分布式定时任务解决方案
  • 蓝桥杯第五天刷题
  • Java数组的定义和使用(万字详解)
  • 【SpringBoot】自定义Starter
  • 【C陷阱与缺陷】----语法陷阱
  • 虹科分享| 关于TrueNAS十问十答
  • Https 笔记
  • 【Python+requests+unittest+excel】实现接口自动化测试框架
  • MySQL终端的使用及其数据类型的使用
  • 长视频终局:一场考验资金储备的消耗战
  • javaEE初阶 — CSS 常用的属性
  • 【面试题】如何取消 script 标签发出的请求