首页 > 其他分享 >js事件循环机制

js事件循环机制

时间:2023-02-22 14:33:13浏览次数:24  
标签:异步 代码 js 任务 循环 机制 执行

宏任务:script、setTimeout、setInterval、setImmdiate、I/O、UI rendering

微任务:promise、Object.observe、MutationObserver

任务的优先级:process.nextTick > promise.then > setTimeout > setImmediate

微任务跟着当前宏任务后面执行,直到到下一个宏任务开始。

 

1,js是单线程,防止代码阻塞,把代码分为:同步代码和异步代码;

2,同步代码给js引擎执行,异步代码交给宿主环境;

3,同步代码放入执行栈中,异步代码等待时机成熟送入任务队列;

4,执行栈执行完毕,会去任务队列看是否有异步任务,有就送到执行栈中执行,反复循环查看执行,这个过程就是事件循环(eventloop);

 

标签:异步,代码,js,任务,循环,机制,执行
From: https://www.cnblogs.com/itpyy/p/17144244.html

相关文章

  • for循环
    用法for变量名in值列表do命令序列doneforiinseq15;doecho$idoneping20网段所有主机是否ping通!/bin/bashforipin192.168.20.{1..254}dop......
  • js - 时间计算(相差月份)
     //不考虑日期,只考虑年和月functionIsGreaterThanM(start,end,m){conststartYear=start.getFullYear();constendYear......
  • js原型链污染详解
    前言之前打某湖论剑,两道js的题,给我整懵逼了,发现以前都没对js做过多少研究,趁着被毒打了,先研究一波js原型链,未雨绸缪。基础protype首先我们研究js原型链,得搞明白原型是什......
  • 打破双亲委派机制
    再来一个沙箱安全机制示例,尝试打破双亲委派机制,用自定义类加载器加载我们自己实现的java.lang.String.classpublicclassMyClassload1extendsClassLoader{priv......
  • 为什么要设计双亲委派机制
    为什么要设计双亲委派机制?沙箱安全机制:自己写的java.lang.String.class类不会被加载,这样便可以防止核心API库被随意篡改避免类的重复加载:当父亲已经加载了该类时,就没有......
  • vue3 ThreeJS 引入obj模型过暗的问题
      当我单纯地用MTLLoader引入材质,OBJLoader引入模型并添加到场景中时, 发现模型非常得暗. 需要将环境光的强度设置到3.5左右看起来才比较正常. 但正常情况下环境光......
  • 电子时钟输出 java 循环 230222
    需求代码publicclassTest16{publicstaticvoidmain(String[]args)throwsInterruptedException{//电子时钟//小时循环for(inthour......
  • js操作shadow-root内的DOM元素
    其实就是documentfragment元素,就是动态生成的文档碎片元素。1,项目中在DOM结构里遇到了shadow-root(open),用JS方法无法直接获取其内的DOM元素2、shadow DOMWebcompon......
  • C++反射机制实现
    直接上代码#include<iostream>#include<map>classBase{public:virtualvoidhello()const=0;};classA:publicBase{public:A(){......
  • iOS Swift开发中JSON对象/JSON字符串/Data的互转
    https://www.jianshu.com/p/712bb9a60184 JSON(对象)----->JSON字符串//JSON--->data--->JSON字符串letdata=try?JSONSerialization.data(withJSONObject:json......