首页 > 其他分享 >事件循环Event loop,宏任务与微任务

事件循环Event loop,宏任务与微任务

时间:2023-01-25 19:46:01浏览次数:39  
标签:Node 异步 队列 js 任务 执行 Event loop

任务挂起、同步任务执行结束执行队列中的异步任务、执行script标签内部代码、setTimeout/setInterval、ajax请、postMessageMessageChannel、setImmediate、I/O(Node.js)Promise、MutonObserver、Object.observe、process.nextTick(Node.js)
每个宏任务中都包含了一个微任务队列 标准回答 浏览器的事件循环:

执行js代码的时候,遇见同步任务,直接推入调用栈中执行,遇到异步任务,将该任务挂起,等到异步任务有返回之后推入到任务队列中,当调用栈中的所有同步任务全部执行完成,将任务队列中的任务按顺序一个一个的推入并执行,重复执行这一系列的行为。 异步任务又分为宏任务和微任务。
宏任务:任务队列中的任务称为宏任务,每个宏任务中都包含了一个微任务队列。

微任务:等宏任务中的主要功能都完成后,渲染引擎不急着去执行下一个宏任务,而是执行当前宏任务中的微任务

宏任务包含:执行script标签内部代码、setTimeout/setInterval、ajax请、postMessageMessageChannel、setImmediate,I/O(Node.js)

微任务包含:Promise、MutonObserver、Object.observe、process.nextTick(Node.js)

加分回答

浏览器和Node 环境下,microtask 任务队列的执行时机不同 - Node端,microtask 在事件循环的各个阶段之间执行 - 浏览器端,

microtask 在事件循环的 macrotask 执行完之后执行

标签:Node,异步,队列,js,任务,执行,Event,loop
From: https://www.cnblogs.com/jycom/p/17067193.html

相关文章

  • Knative的事件驱动组件Eventing
    KnativeEventing是Knative平台的通用事件驱动组件,它实现了云原生应用开发对事件驱动的通用需求,同时还提供了一组可组合的原语,实现了事件源和消费者之间的延迟绑定。Knati......
  • Day13 - 多任务编程【线程】
    1.线程介绍线程也是实现多任务的一种方式一个程序在执行时会对应一个主进程,主进程中会有一个主线程通过主线程手动产生的线程称为子线程进程是最小资源分配单位线程......
  • 静态Web服务器-多任务版Python解释器详解实现代理池的API模块
    学习目标能够写出多线程版的多任务web服务器程序1.静态Web服务器的问题目前的Web服务器,不能支持多用户同时访问,只能一个一个的处理客户端的请求,那么如何开发多任务版的web......
  • arduino 中使用FreeRTOS 创建任务
    arduino中使用FreeRTOS创建任务#include<Arduino.h>TaskHandle_tx_task_one=NULL;voidtask_one(void*param);voidsetup(){Serial.begin(115200);......
  • Internet and Telecommunication Fraud Prevention Analysis based on Deep Learning
    基于深度学习的互联网和电信欺诈防范分析BIO标注法和BIOES标注法NLP中的序列标注方式常用的有两种:BIO标注法和BIOES标注法。BIO标注法:B-begin,代表实体的开头I-inside,......
  • Day12 - 多任务编程【进程】
    0.多任务的概念多任务是指在同一时间内执行多个任务,例如:现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。1.多任务介绍多任务为提高程序的执行效......
  • 《数据结构》课程设计任务书[2023-01-24]
    《数据结构》课程设计任务书[2023-01-24]《数据结构》课程设计任务书此任务书仅适用选课储岳中老师的学生QQ群:7492682161(入群密码:2022DS1)一、设计要求仔细阅读《......
  • hdu:Big Event in HDU(母函数,背包)
    ProblemDescriptionNowadays,weallknowthatComputerCollegeisthebiggestdepartmentinHDU.But,maybeyoudon’tknowthatComputerCollegehadeverbe......
  • CountdownEvent
    CountdownEventSystem.Threading.CountdownEventisasynchronizationprimitivethatunblocksitswaitingthreadsafterithasbeensignaledacertainnumberof......
  • save() prohibited to prevent data loss due to unsaved related object 'item_n
    问题描述:save()prohibitedtopreventdatalossduetounsavedrelatedobject'item_no原因分析:原来的目的是保存数据时同步另一个表,不存在新增,存在更新,但......