33、js - 事件循环 微任务 宏任务

这篇具有很好参考价值的文章主要介绍了33、js - 事件循环 微任务 宏任务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、事件循环♻️(EventLoop)

js是单线程语言,也就是某一刻只能执行一行代码,为了让耗时代码不阻塞其他代码运行,设计了事件循环模型

事件循环是一个并发模型,负责执行代码、收集异步任务的模型,在调用栈空闲,反复调用任务队列里回调函数的执行机制,就叫事件循环。

这个模型与其他语言的模型截然不同,比如C和Java

2、宏任务

宏任务:由浏览器环境执行的异步代码

任务(代码)

执行所在环境

js脚本执行事件(script)

浏览器

setTimeout/setInterval

浏览器

ajax请求完成事件

浏览器

用户交互事件等

浏览器

3、微任务

微任务:由js引擎环境执行的异步代码

Promise本身是同步的,而then和catch回调函数是异步的

任务(代码)

执行所在环境

Promise对象.then()

js引擎

4、宏任务和微任务的执行顺序

(1)调用栈的代码先执行。

(2)遇到宏任务,就把宏任务放到宿主环境里进行计时,时间到了宏任务会到宏任务队列里进行排队等待执行。

(3)当调用栈的代码执行完了,会先执行微任务队列里的任务。

(4)微任务队列里的任务都执行完了,最后才执行宏任务队列里的任务。文章来源地址https://www.toymoban.com/news/detail-478050.html

33、js - 事件循环 微任务 宏任务

到了这里,关于33、js - 事件循环 微任务 宏任务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式

    for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行 方式一 使用 CountDownLatch 在 Java 中,您可以使用 CountDownLatch 来实现主线程等待子线程执行完成的功能。CountDownLatch 是一个同步工具类,它允许一个或多个线程等待其他线程完成操作后再继续执行。 具

    2024年02月11日
    浏览(43)
  • Node.js 事件循环和事件派发器

    目录 1、process.nextTick() 介绍 2、setTimeout() 3、零延迟 4、setInterval() 5、递归setTimeout 6、setImmediate() 7、Node.js 事件派发器 Node.js中  process.nextTick 函数以一种特殊的方式与事件循环交互。 当你试图理解Node.js事件循环时,它的一个重要部分是process.nextTick()。每次事件循环进行一次完

    2024年02月06日
    浏览(40)
  • js事件循环详解

    JavaScript的事件循环是一种处理异步事件和回调函数的机制,它是在浏览器或Node.js环境中运行,用于管理任务队列和调用栈,以及在适当的时候执行回调函数。 事件循环的基本原理是,JavaScript引擎在空闲时等待事件的到来,然后将事件添加到事件队列中。事件循环会不断地检

    2024年02月07日
    浏览(36)
  • Ajax_4(进阶)同步异步+ 宏任务微任务 + Promise链 + async终极解决方案 +事件循环原理 + 综合案例

    01-同步代码和异步代码 什么是同步代码? 同步代码:逐行执行,需要原地等待结果后,才继续向下执行。 什么是异步代码? 调用后耗时,不阻塞代码继续执行,(不必原地等待),在将来完成后 触发一个 回调函数 。 代码阅读 目标:阅读并回答代码执行和打印的顺序 打印

    2024年02月13日
    浏览(50)
  • 【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角

    在探讨 Qt 的世界时,我们不仅是在讨论一种编程框架,更是在探索一种将复杂技术细节隐藏于幕后、让开发者专注于创造性工作的艺术形式。正如著名的计算机科学家 Edsger Dijkstra 所言:“简洁是复杂性的先决条件。” 在这一章节中,我们将探讨 Qt 事件机制的基础概念,这

    2024年02月22日
    浏览(52)
  • 解释一下Node.js中的事件循环(event loop)

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月05日
    浏览(45)
  • 一文带你彻底弄懂js事件循环(Event Loop)

    JavaScript事件循环是JavaScript运行时环境中处理异步操作的机制。它允许JavaScript在执行同步代码的同时处理异步任务,以避免阻塞线程并提供更好的用户体验。 本文将在浏览器异步执行原理基础上带你彻底弄懂js的事件循环机制。 js是单线程的,也就是说同一时刻只能做一件事

    2024年02月08日
    浏览(48)
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)在EventLoop中处理被激活的文件描述符的事件

    文件描述符处理与回调函数 一、主要概念 反应堆模型:一种处理系统事件或网络事件的模型,当文件描述符被激活时,可以检测到 文件描述符:在操作系统中,用于标识打开的文件、套接字等的一种数据类型  处理激活的文件描述符的函数:当文件描述符被激活时,需要有

    2024年02月03日
    浏览(47)
  • javascript打飞机程序8x8x飞机大战js打飞机程序,飞机大战知识点包含了JavaScript面向过程的全部知识点,包括变量、运算符、判断、循环、数组、自定义函数、系统函数、事件等。...

    讲解了JavaScript编程语言制作游戏界面,添加游戏控制、制作元素动画、制作多元素场景,添加碰撞功能、制作精灵动画等功能 源码如下: html:

    2024年02月16日
    浏览(64)
  • 浏览器事件循环(事件轮询)

    浏览器事件循环(Browser Event Loop)是浏览器用于处理用户输入、网络请求、渲染和其他异步事件的机制。这个循环确保了 JavaScript 代码的执行是非阻塞的,允许浏览器同时处理多个任务,从而提高用户体验。以下是浏览器事件循环的详细说明: 调用栈: 当一个 JavaScript 脚本

    2024年01月19日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包