Js 的事件循环(Event Loop)机制

news/2024/11/15 0:38:19/

Js 的事件循环(Event Loop)机制

1、js是单线程的,会有阻塞问题
2、浏览器解决阻塞问题的方法:如网络请求、settimeout是用异步来做的,但异步任务没有优先级。为了更灵活,增加了事件循环
3、事件有同步任务和异步任务,先执行同步任务,再执行异步任务;异步任务中有微任务和宏任务
4、同步任务执行完了先执行微任务,再执行宏任务;每执行一个宏任务再去检查微任务队列,如果微任务队列有任务,会清空微任务队列后再去执行下一个宏任务;这样依次循环,形成整个事件循环

宏任务:异步Ajax请求,setTimeout,setInterval,文件操作等
微任务:Promise.then,Promise.catch,Promise.finally,process.nextTick等

参考:
链接: link
链接: link


http://www.ppmy.cn/news/1416226.html

相关文章

数据降维方法-主成分分析(PCA)

目录 一、前言 二、向量的表示及基变换 三、基变换 四、协方差矩阵 五、协方差 六、优化目标 一、前言 主成分分析(Principal Component Analysis) 用途:降维中的常用手段 目标:提取最有价值的信息(基于方差) 问题&#x…

【Vue】响应式原理与ref

首先讲讲JS中的Proxy JavaScript 运行环境包含了一些不可枚举、不可写入的对象属性,然而在 ES5 之前开发者无法定义他们自己的不可枚举属性或不可写入属性。ES5 引入 Object.defineProperty() 方法以便开发者在这方面能够像 JS 引擎那样做。 ES6 为了让开发者能进…

Linux:软硬链接及动静态库

一、Linux中的链接文件 1.1硬链接及应用场景 ln//创建硬链接 我们再创建一个硬链接生成的文件。 我们可以看到mlink.hard的inode和makefile.c的inode都是一样的,inode一样里面的数据自然也是一样。相当于对make.file进行了一个重命名,所以硬链接一定没…

python知识点汇总(十一)

python知识点总结 1、当Python退出时,是否会清除所有分配的内存?2、Python的优势有哪些?3、什么是元组的解封装4、Python中如何动态获取和设置对象的属性?5、创建删除操作系统上的文件6、主动抛出异常7、help() 函数和 dir() 函数…

鸿蒙OS开发学习:【第三方库调用】

介绍 本篇Codelab主要向开发者展示了在Stage模型中,如何调用已经上架到[三方库中心]的社区库和项目内创建的本地库。效果图如下: 相关概念 [Navigation]:一般作为Page页面的根容器,通过属性设置来展示页面的标题、工具栏、菜单。…

[RK3399 Linux] 使用ubuntu 20.04.5制作rootfs

一、ubuntu base ubuntu base是用于为特定需求创建自定义映像的最小rootfs,是ubuntu可以运行的最小环境。 1.1 下载源码 下载ubuntu-base的方式有很多,可以从官方的地址:ttp://cdimage.ubuntu.com/ubuntu-base/releases。 也可以其它镜像地址下载,如清华源:https://mi…

java方法引用和Stream流

方法引用 一种简化代码的语法糖,用于直接引用已经存在的方法 是lambda表达式的一种简化形式,用于方法的参数传递 可以简化代码,提高代码的可读性和可维护性 当调用接口的抽象方法时,实际调用的是被引用的方法 方法引用的形式 1,静态方法引用: 类名::静态方法名 引用类中…

2万字长文:MySQL面试题及参考答案(持续更新)

MySQL作为最受欢迎的关系型数据库之一,无论是在面试中还是在实际工作中,对MySQL的深入理解和应用都是必不可少的。本文将为您提供一系列常见的MySQL面试题及其参考答案,帮助您在面试中脱颖而出,同时也为您的数据库实践提供指导。 目录 1. 什么是数据库事务?事务的ACID特…