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

事件循环机制(Event Loop)刨根问底

事件循环是什么?
为什么有事件循环机制
因为js是单线程的,注意,浏览器是多线程的。浏览器只给一个线程给js渲染,
假设是多线程,可能会存在这种情况:
若一个线程要操作dom,另一个线程要删除dom,就会发生冲突。
既然是单线程的,那么代码执行就只能自上至下一行行执行(同步)吗? 遇到一些异步的如何处理?
这时,就需要event loop来实现非阻塞执行。

在事件循环当中有两种任务:

  • 宏任务
  • 微任务

宏任务:整体代码,setTimeout,setInterval,I/O操作 ajax;
微任务:new promise().then()/catch中的回调 ,await有结果后的语句。

为什么需要两种任务,为什么不能只有宏任务?
宏任务只能按照先进先出的原则执行,一些高优先级的任务就无法先执行。还需要执行优先级更高的。于是还要有微任务。

一道题目

 async function async1() {console.log('async1 statrt');//2.打印出来await async2();//3.执行async2,等待返回结果//await后的可看做nw Promise中语句,直接执行//awiat下面的部分看做promsie.then中的部分console.log("async1 end");//微任务异步 6.执行第一个微任务}async function  async2() {console.log('async2')}console.log('script start');//1.打印script startsetTimeout(() => {console.log('setTimeout');//宏任务 8.执行第一个宏任务}, 0);async1();new Promise(function  (resolve) {console.log('promise1');//4.打印出promise1resolve();}).then(function () {console.log('primise2');//微任务 7.执行第二个微任务})console.log("script end");//5.打印出script end 

代码运行如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35090.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Kafka学习----Kafka高级理论

Kafka高级理论一 . Kafka 工作流程二. Kafka文件存储机制①. Kafka文件存储机制②. index文件和log文件详解三. Kafka 生产者①. 分区策略1. 分区的原因2. 分区的原则②. 数据可靠性保证1. 副本数据同步策略2. ISR3. ack 应答机制4. 故障处理细节③. Exactly Once 语义四. Kafk…...

wxWidgets:窗口删除

wxWidgets:窗口删除 wxWidgets:窗口删除关闭窗口默认窗口关闭行为用户呼叫退出菜单优雅地退出应用程序自动删除子窗口其他种类的窗户wxWidgets:窗口删除 窗口删除可能是一个令人困惑的主题,因此提供此概述是为了帮助您明确删除窗口的时间和方式,或响应用户关闭窗口的请求…...

Node.js-EJS模板

EJS是一个JavaScript模版库&#xff0c;用来将EJS模版结合着JSON数据转换为HTML 并且可以直接在模版中写JavaScript的语法 安装ejs包 //控制台输入 npm i ejs简单示例 let template <h1>Hello, <% name %></h1> let data {name: World }let renderStr …...

Windows没有MySQL服务及MySQL无法启动解决办法

下载MySQL并把MySQL的路径配置到系统环境后执行命令&#xff1a;mysql -u root -p 报错&#xff1a;ERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061) 猜测原因可能是windows没有mysql服务或mysql服务没有启动&#xff0c;这篇文章主要讲windows没有my…...

采坑记录之node-sass

node-sass这货很容易安装失败 下面是node-sass官网给出的对应node.js版本的图 一定要按照node-sass官网给出的对应node.js版本来安装&#xff0c;不然很容易安装失败 下面是sass-loader版本图 我自己安装的是node.js 14.x版本的&#xff0c;对应的node-sass的版本是4.14.x&a…...

C# 打包windows服务安装包后,安装后自动启动服务

在服务的安装程序&#xff0c;通常是ProjectInstaller&#xff0c;重写他的Commit方法 public override void Commit(IDictionary savedState){base.Commit(savedState);ServiceController sc new ServiceController("你的服务名称");if (sc.Status.Equals(Service…...

MATLAB 数学应用 微分方程 时滞微分方程 ddesd

求解带有常规时滞的时滞微分方程 (DDE) 语法 sol ddesd(ddefun,delays,history,tspan) sol ddesd(ddefun,delays,history,tspan,options) 参数 参数说明ddefun用于对微分方程 y′(t) f(t,y(t),y(d(1),…,y(d(k))) 的右侧进行计算的函数句柄。此函数必须为以下形式&#…...

Java 从多线程到并发编程(七)—— wait notify 生产者消费者问题 管程法 信号灯法

文章目录前言 &#xff65;ᴗ&#xff65;wait 与 notifynotify 和 notifyAll深入了解 阻塞线程的状态切换生产者消费者模型wait notify深入一点管程法管程法 仓库管程法 生产者管程法 消费者管程法 main调用管程法结果if还是while信号灯法总结 ◡前言 &#xff65;ᴗ&#xff…...

雨课堂期末考试答案----查了好多份答案,一道一道的进行查找正确答案,基本可以保证是正确答案

1.主观题 (10分) 工程为何总是伴随着风险?导致工程风险的因素有哪些? 2.判断题 (1分) 目前对水利工程价值的伦理判断基本是遵循功利主义原则。()对 3.单选题 (1分) 下列哪一项不属于工程实践全球性特征?( )C A 生态性 B 深远性 C 社会性 D 整体性 4.单选题 (1分) …...

阿里面试官力荐:Java面试必刷的17套一线大厂真题(含答案)

金三银四过去之后&#xff0c;回顾好多同学的面试经历&#xff0c;总结出了这份大厂面试真题的合集&#xff08;含答案&#xff09;&#xff0c;里面包含了Java中级到Java架构师的方方面面&#xff0c;其中大厂也包含了阿里巴巴&#xff0c;京东&#xff0c;百度&#xff0c;拼…...

Vue系列3——Vue计算属性、监视属性和生命周期

点赞多大胆&#xff0c;就有多大产&#xff01;开源促使进步&#xff0c;献给每一位技术使用者和爱好者&#xff01; 干货满满&#xff0c;摆好姿势&#xff0c;点赞发车 路漫漫其修远兮&#xff0c;吾将上下而求索 前言 本章节咱们来说一下Vue中两个非常重要的计算属性、监视…...

offer来了读书笔记-数据库三范式

面试中被问到了数据库三范式&#xff0c;只知道范式是数据库的设计规范&#xff0c;但是具体文档化的内容一下子却想不起来了&#xff0c;回顾平时的数据库表设计&#xff0c;其实也没有特别遵守范式&#xff0c;一切都是以方便开发为第一要素&#xff0c;这里对数据库的几个范…...

Linux 之 RAID 磁盘阵列

目录一、RAID磁盘阵列1.1 RAID磁盘阵列介绍1.2 常用的RAID级别1.2.1 RAID 0&#xff08;条带化存储&#xff09;1.2.2 RAID 1 (镜像存储)1.2.3 RAID5 磁盘列阵1.2.3 RAID6 磁盘列阵1.2.4 RAID 10&#xff08;先做镜像&#xff0c;再做条带&#xff09;1.2.5 RAID 01&#xff08…...

用 Python 进行 OCR 图像识别

数据采集就怕遇到图片,只能看不能复制怎么办。手动将文字提取出来,要耗费很大的工作量。 例如下图,某楼盘的一房一价表,怎么样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机进行文字的识别,然后再对这些数值型信息进行数据分析? 首先把图片中的单价提取出来, …...

(更新时间)2021年6月3日 商城高并发秒杀系统(.NET Core版) 24-性能优化-nginx负载均衡优化

一、关于Nginx的负载均衡 在服务器集群中&#xff0c;Nginx起到一个代理服务器的角色&#xff08;即反向代理&#xff09;&#xff0c;为了避免单独一个服务器压力过大&#xff0c;将来自用户的请求转发给不同的服务器。 二、Nginx负载均衡策略 负载均衡用于从“upstream”模…...

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错&#xff1f; 我仔细一看&#xff1a;是用来爬取某个网站妹子图的代码&#xff0c;结果发现那个网站已经404了&#xff0c;当然爬不到了。 其实很多初学者都喜欢拿网上的案例作为练习&#xff0c;但是我们的爬虫可能会对一些…...

CentOS8安装activeMQ

Active简介 ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件&#xff1b;由于ActiveMQ是一个纯Java程序&#xff0c;因此只需要操作系统支持Java虚拟机&#xff0c;ActiveMQ便可执行。 它解决了下面的问题&#xff1a; 做到系统解耦&#xff0c;当新的模块接进来时&am…...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件

预期效果&#xff1a;前后台联动&#xff0c;即点击“导出Excel”按钮后弹出下载框 导出效果&#xff1a; 1. 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version>…...

优质ip代理怎么使用?

目前&#xff0c;大家上网越来越依赖于代理IP&#xff0c;代理IP的应用范畴正在逐步扩展。对于因特网这个巨大的网站空间&#xff0c;大家一样期待着这其中的标准和实际中的一样&#xff0c;因此也期待着自己的个人信息能在互联网上得到最大的利益维护。但是事实上由于互联网是…...

反射动态修改注解属性值

注解Two中有two属性表&#xff0c;在TestTwoAnno这个类初始化结束后&#xff0c;修改Two注解的two属性。 import com.enterprise.support.rocketmq.annotation.Two; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Compo…...

SpringBoot - MyBatis-Plus使用详解(一)

1&#xff0c;什么是 MyBatis-Plus&#xff1f; &#xff08;1&#xff09;MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。我们可以理解为它已经封装好了一些…...

机器学习----支撑向量机(SVM)

SVM 支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 图中是一个样本空间&#xff0c;里面有一些样本点&#xff0c;分成红色和蓝色两类。 逻辑回归是要找到一根决策边界&#xff0c;由决策边界把数据分成两类。但可能存在这样一些数据&#xff08;下图&…...

采坑记录之node-sass

node-sass这货很容易安装失败 下面是node-sass官网给出的对应node.js版本的图 一定要按照node-sass官网给出的对应node.js版本来安装&#xff0c;不然很容易安装失败 下面是sass-loader版本图 我自己安装的是node.js 14.x版本的&#xff0c;对应的node-sass的版本是4.14.x&a…...

Elasticsearch:使用 Debian 软件包安装 Elasticsearch

Elasticsearch 的 Debian 包可以从我们的网站或我们的 APT 仓库下载。 它可用于在任何基于 Debian 的系统上安装 Elasticsearch&#xff0c;例如 Debian 和 Ubuntu。 Elasticsearch 的最新稳定版本可以在下载 Elasticsearch 页面上找到。 其他版本可以在过去的版本页面上找到。…...

ZZULIOJ 1009: 求平均分

题目描述 已知某位学生的数学、英语和计算机课程的成绩&#xff0c;求该生三门课程的平均分。 输入 输入三个整数&#xff0c;数据之间由空格隔开。 输出 输出占一行&#xff0c;包含一个实数&#xff0c;为三门课的平均分&#xff0c;保留两位小数。 样例输入 87 73 93…...

后端返回状态码401, 获取不到怎么办?

传送门...

Node.js-EJS模板

EJS是一个JavaScript模版库&#xff0c;用来将EJS模版结合着JSON数据转换为HTML 并且可以直接在模版中写JavaScript的语法 安装ejs包 //控制台输入 npm i ejs简单示例 let template <h1>Hello, <% name %></h1> let data {name: World }let renderStr …...

python数据分析——如何用python连接远程数据库

本文将以SQLite、MySQL&#xff0c;PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作。 SQLite SQLite可能是与Python连接的最方便的数据库&#xff0c;因为我们不需要安装任何外部Python SQL模块即可使用。默认情况下&#xff0c;Python会自带一个名为sqlite…...

一本通1034:计算三角形面积

1034&#xff1a;计算三角形面积 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 72178 通过数: 23831 【题目描述】 平面上有一个三角形&#xff0c;它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3) &#xff0c;那么请问这个三角形的面积是多少&#xff0c;精确…...

菜鸟网络面试

在boss上投递了简历&#xff0c;然后因为疫情的原因电话面试了一下。 开始比较紧张&#xff0c;毕竟阿里旗下的大企业。以下是面试问题&#xff1a; 介绍一下最近做的项目&#xff1b; 缓存和数据库一致性问题&#xff1b; redis集群怎么搭建&#xff1b; 系统的稳定性和监…...

菜鸟网络

&#xfeff;&#xfeff;有没有想去菜鸟网络&#xff08;阿里系&#xff09;实习的同学&#xff0c;可以联系我一下&#xff0c;这边有师兄可以内推的机会&#xff0c;岗位不限。联系QQ&#xff1a;宋同学 466309936&#xff08;加好友请注明实习内推&#xff09;...

阿里 菜鸟网络(一面)

阿里 菜鸟网络 (一面) Base&#xff1a;杭州&#xff0c;岗位&#xff1a;Java后端开发 自我介绍&#xff1f; 为什么选择的是应用开发&#xff0c;而不是算法类的呢&#xff1f; 介绍一下你的项目&#xff0c;用了哪些模块&#xff1f;技术细节可以介绍一下。 web框架是什…...

Python网络编程-菜鸟教程

1、socket简介 什么是 Socket? Socket又称"套接字"&#xff0c;应用程序通常通过"套接字"向网络发出请求或者应答网络请求&#xff0c;使主机间或者一台计算机上的进程间可以通讯。 socket()函数 Python 中&#xff0c;我们用 socket() 函数来创建套接…...

菜鸟网络面试——123面

目录 一面(电话) 二面(电话) 三面(现场): 一面(电话) 1. synchronized是否可以由同一个函数多次调用(一个函数递归调用); (可重入性) 2. hashMap是否线程安全,与HashTable的区别; 3. ConcurrentHashMap中的扩容是否需要对整个表上锁; (对单个…...

STM32实战总结:HAL之触摸屏

输入类设备简介 IO输入输出&#xff0c;是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据然后进行计算加工得到目标数据并输出给外部&#xff08;计算机可以看成数据处理器&#xff09;。计算机和外部交互就是通过IO。每一台计算机都有个标准输入和标准输出。 常…...

linux系统下能玩网页游戏下载软件,Linux下安装配置Lutris,开源游戏平台

Lutris是一个开源游戏平台&#xff0c;和steam一样你可以在上面安装&#xff0c;删除&#xff0c;配置&#xff0c;启动你的游戏&#xff0c;而且最关键的是Lutris自带了20多个模拟器。它可以帮助您在统一界面中安装和管理游戏。其目标是支持在Linux上运行的所有游戏&#xff0…...

Recurrence relation

In mathematics, a recurrence relation is an equation according to which the {\displaystyle n}nth term of a sequence of numbers is equal to some combination of the previous terms. Often, only {\displaystyle k}k previous terms of the sequence appear in the...

teamviewer 免费使用数量到达上限:同一账号在不同设备上使用已达上限.如何解绑

1.进入Teamviewer官网https://www.teamviewer.cn/cn/content/remove-limit/ 2.登录自己的账户&#xff0c;进入自己的账户&#xff0c;如下图所示...

ubuntu安装teamviewer教程 linux安装teamviewer教程

1 安装包下载 前往官网&#xff1a;https://www.teamviewer.cn/cn/download/linux/&#xff0c;下载相应的linux版本&#xff0c;如ubuntu。 2 安装包安装 打开刚才下载的安装包所在路径&#xff0c;并在终端打开&#xff1a; 输入命令&#xff1a; sudo dpkg -i teamviewer…...

linux卸载teamviewer,teamviewer在linux 下安装和卸载

How do I install TeamViewer on my Linux distribution?Graphical installationFor installing TeamViewer, we recommend using the graphical installer. The graphical installer can be invoked by (double) clicking the downloaded package.If this is not the case an...

TeamViewer的安装和使用方法

备注&#xff1a;本文章主要是便于部分同学操作。&#xff08;主要是由于提问人数太多&#xff0c;我还是写一下教程&#xff0c;减少重复性工作&#xff09; 目录 第一步&#xff1a;进官网下载软件 第二步&#xff1a;安装或打开软件 第三步&#xff1a;使用 如果你是被…...

Win10:远程关机,拒绝访问

拒绝访问&#xff08;5&#xff09; 目标机是一台Windows10系统&#xff0c;需要使用远程关机命令来关闭它。参考了网上的教程&#xff0c;启动Guest用户&#xff0c;开启RemoteRegister服务&#xff0c;本地策略里从远程系统强制关机添加Guest用户&#xff0c;拒绝从网络访问…...

通过guest账户无法进入远程计算机,小经验|guest远程关机设置

在某些特定的场景中可能需要从指定的一台主机对整个局域网内的主机进行远程管理&#xff0c;如开机、关机、重启等&#xff0c;那么需要进行怎么样的基础设置&#xff0c;才能实现想要的效果呢&#xff1f;一、给指定用户(如guest)权限(1)允许guest从远程系统强制关机&#xff…...

windows服务器远程重启又好,windows服务器远程关机或重启

首先在一台windows2008服务器上打开运行窗口&#xff0c;进入DOS界面&#xff0c;然后敲入如下命令&#xff1a;shutdown /r /m \\hostname -t 0其中&#xff0c;/r 表示重新启动&#xff0c;/m表示机器主机名&#xff0c;-t表示延后时间(0表示立即重启)如果需要关机&#xff0…...

远程锁定计算机,远程关机

随着计算机技术及网络技术的发展&#xff0c;网络的应用越来越广泛&#xff0c;计算机不仅可以控制本地的设备&#xff0c; 还可通过网络控制远端的设备&#xff0c;网上监控便应运而生。将远程控制应用于各种网络管理软件中&#xff0c;已成为网络技术管理的重要手段。远程关机…...

tcpdump使用大全

tcpdump格式&#xff1a; [options][not]proto dir type options&#xff1a;-nn/-vvv/-xx/-i/-e等 proto&#xff1a;tcp/udp/arp/ip/ether/icmp等 type&#xff1a;host/net/port/portrange等 portrange: 例如80:1024 tcpdump -w file.pcap //保存文件 tcpdump -r file.pcap…...

sharedPtr

shared_ptr 1.以何种方式传递 通过下列方式将 shared_ptr 传递给其他函数&#xff1a; 按值传递 shared_ptr。 这将调用复制构造函数&#xff0c;增加引用计数&#xff0c;并使被调用方成为所有者。 此操作的开销很小&#xff0c;但此操作的开销可能很大&#xff0c;具体取决…...

ElasticStack中的filebeat

记录下真实案例 下载filebeat 地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases/filebeat-7-11-1 我是用的7.11.1版本的。 ES集群和Kibana 自备集群&#xff0c;搭建还是比较简单的。网上找一下就可以。 filebeat安装和配置 解压filebeat tar -xzvf …...

VLAN技术

本文首次发布于 Mlin Blog、简书、CSDN&#xff0c;作者 木林(Mlin) ,转载请保留原文链接。 前言正文一、VLAN基本概念1 VLAN概述2 VLAN帧格式3 VLAN链路类型4 PVID5 VLAN端口类型5.1 Access端口5.2 Trunk端口5.3 Hybrid端口 6 VLAN划分6.1 VLAN划分方法6.2 VLAN划分匹配优先级…...