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

Js中异步编程的知识扩展【异步有哪些、如何执行、宏任务和微任务等】

知识扩展学习异步编程是一种通用的编程范式很多语言都有实现异步是编程思想Java、Python、Go 都有异步但 JavaScript 因为是单线程语言对异步编程依赖度最高通过「JS 引擎 宿主环境」共同实现事件循环、宏任务 / 微任务机制。异步编程 ≠ JavaScriptJS 是单线程语言为了避免耗时操作阻塞主线程导致页面卡顿所以强制依赖异步编程模型…1.异步编程与JS的关系1.不等同异步是一种通用的编程范式并非 JS 独有。2.核心依赖JS 是单线程语言同一时间只能做一件事。3.必要性为了防止耗时的 I/O 操作网络请求、文件读写阻塞主线程导致页面卡死JS 必须依赖异步编程通过非阻塞方式处理并发任务。2.JS 中的异步编程是如何执行的JS 的执行遵循事件循环Event Loop 机制具体流程【文档理解】1.执行同步代码优先执行调用栈中的同步任务。2.处理微任务Microtasks同步任务执行完毕后立即将微任务队列Promise、queueMicrotask 等中的所有任务清空。3.更新渲染浏览器进行页面渲染UI 线程。4.处理宏任务Macrotasks从宏任务队列setTimeout、AJAX、事件等中取出一个任务执行。5.循环往复重复上述步骤。一句话总结同步执行完 - 清空微任务这里用‘清空’是因为需要一次性全部执行完 - 执行一个宏任务 - 再清空微任务…… 如此循环。【个人理解】在同一个事件循环内先执行同步任务等所有同步任务执行完毕后再执行异步任务注异步任务也分执行顺序微任务先执行 promise宏任务后执行 - 浏览器的定时器任务等3.所谓事件循环应该说的就是在一个事件内【答是的】事件循环 一次循环 一个 “事件周期 / 一轮循环”JS 执行的【一轮完整循环】这一轮里固定做三件事做完算一轮然后开始下一轮1.执行同步代码2.执行所有微任务3.执行一个宏任务这三件事走完 → 这一轮事件循环结束实践案例console.log(1 同步);setTimeout(() {console.log(2 宏任务1);Promise.resolve().then(() {console.log(3 宏任务1里的微任务);});},0);Promise.resolve().then(() {console.log(4 微任务1);});Promise.resolve().then(() {console.log(5 微任务2);});setTimeout(() {console.log(6 宏任务2);},0);console.log(7 同步);最后运行结果1 同步7 同步4 微任务15 微任务22 宏任务13 宏任务1里的微任务6 宏任务2再次总结同一个事件循环内执行所有同步任务执行所有微任务清空执行一个宏任务执行完这个宏任务后立刻检查并清空所有微任务4.事件循环和事件委托的关系【答完全没关系】1.事件循环JS 代码执行顺序机制异步、同步、微任务、宏任务2.事件委托DOM 事件绑定优化方案例如利用事件冒泡把事件绑在父元素上用来管理子元素的点击等行为。5.JS中常使用的几种异步编程方式 1.Callback回调函数需要避免回调地狱…2.Promise pending等待中、fulfilled成功、rejected失败状态一旦改变就不可逆3.async/await 优点代码同步写法、可读性强、错误处理方便、缺点不能并行执行需配合 Promise.all6.宏任务Macrotask答宏任务排队一个一个执行、微任务一次性全部执行完1.概念由 浏览器 / Node 环境提供 的异步任务。特点一次事件循环只执行一个2.包含哪些?script 标签里的整体代码setTimeout / setInterval定时器AJAX/fetch网络请求DOM 事件click、scroll、loadI/O 操作文件读写3.执行规则排队执行、一次只执行一个执行完一个必须去检查微任务7.微任务Microtask1. 概念由 JS 引擎自身提供 的异步任务。特点必须一次性全部清空才允许继续2. 包含哪些Promise.then / catch / finally最重要queueMicrotask()MutationObserver监听 DOM 变化process.nextTickNode 里3. 执行规则队列里所有微任务一次性执行完执行不完绝不往下走执行完才允许执行下一个宏任务8.微任务和宏任务区别微任务优先执行Promise.then/catch/finallyasync/await 是其语法糖、process.nextTickNode、queueMicrotask、MutationObserver浏览器宏任务后执行浏览器setTimeout、setInterval、fetch/AJAX、DOM 事件、requestAnimationFrameNodesetTimeout、setInterval、fs.readFile、I/O 操作网络请求执行顺序在一个事件循环内1.执行所有同步 →2.执行所有微任务 →3.执行1个宏任务4.执行完宏任务后再次回到步骤 2清空所有新产生的微任务5.循环往复…

相关文章:

Js中异步编程的知识扩展【异步有哪些、如何执行、宏任务和微任务等】

知识扩展学习 异步编程是一种通用的编程范式,很多语言都有实现(异步是编程思想:Java、Python、Go 都有异步),但 JavaScript 因为是单线程语言,对异步编程依赖度最高,通过「JS 引擎 宿主环境」共…...

医学影像分割实战:用Attention U-Net精准定位胰腺(附TensorFlow代码)

医学影像分割实战:用Attention U-Net精准定位胰腺(附TensorFlow代码) 在医疗AI领域,胰腺分割一直是个棘手的问题——这个深藏在腹腔后部的小器官,不仅与周围组织对比度低,形状还像条顽皮的变色龙&#xff0…...

3天构建企业级LLM监控系统:从0到1落地实践指南

3天构建企业级LLM监控系统:从0到1落地实践指南 【免费下载链接】claude-code-router Use Claude Code without an Anthropics account and route it to another LLM provider 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router 一、LLM监…...

FireRedASR Pro真实案例分享:会议录音转文字,效率提升300%

FireRedASR Pro真实案例分享:会议录音转文字,效率提升300% 1. 场景痛点:会议纪要的数字化转型困境 每周三上午9点,市场部的王经理都会准时打开录音笔,开始记录长达2小时的产品讨论会。会议结束后,他需要花…...

Fish-Speech-1.5语音合成模型:5分钟快速部署,新手也能轻松上手

Fish-Speech-1.5语音合成模型:5分钟快速部署,新手也能轻松上手 1. 为什么选择Fish-Speech-1.5 语音合成技术已经发展多年,但大多数开源模型要么效果生硬,要么部署复杂。Fish-Speech-1.5采用创新的DualAR架构(双自回归…...

FLUX.1-dev像素艺术生成:像素幻梦在NFT像素头像项目中的高效应用

FLUX.1-dev像素艺术生成:像素幻梦在NFT像素头像项目中的高效应用 1. 像素艺术生成的新纪元 在数字艺术创作领域,像素艺术正经历着前所未有的复兴。传统像素创作需要艺术家手动绘制每个像素点,耗时耗力且难以批量生产。而基于FLUX.1-dev模型…...

从VGG到ResNet:LayerCAM论文里的那些调参Trick与避坑指南

从VGG到ResNet:LayerCAM论文里的那些调参Trick与避坑指南 在计算机视觉领域,类激活图(Class Activation Maps, CAM)技术已经成为理解卷积神经网络决策过程的重要工具。LayerCAM作为这一领域的最新进展,通过巧妙利用CNN…...

STM32F7实现100μs硬实时EtherCAT主站

1. SOEM EtherCAT主站库概述SOEM(Simple Open EtherCAT Master)是一个轻量级、开源的EtherCAT主站协议栈实现,专为资源受限的嵌入式系统设计。其核心目标是将标准以太网硬件(无需专用ASIC或FPGA)转化为功能完备的Ether…...

AI 知识与工具全景汇总

AI 知识与工具全景汇总 本文档整合了多份关于 AI 工具演进、Skill 机制解析、产品经理工作流、实战安装教程及企业落地实践的核心知识,旨在为从个人开发者到企业业务人员提供一站式的 AI 应用参考。第一部分:AI 工具演进与生态概览 1.1 2025 → 2026 工具…...

NaViL-9B科研效率提升:文献图表理解+相关工作对比表格自动生成

NaViL-9B科研效率提升:文献图表理解相关工作对比表格自动生成 1. 平台介绍 NaViL-9B是由专业研究机构开发的原生多模态大语言模型,能够同时处理文本和图像信息。这个模型特别适合科研场景,可以帮助研究人员快速理解文献中的图表内容&#x…...

像素幻梦创意工坊案例分享:为开源RPG引擎生成全系像素道具图标集

像素幻梦创意工坊案例分享:为开源RPG引擎生成全系像素道具图标集 1. 项目背景与价值 在独立游戏开发领域,像素艺术始终保持着独特的魅力。然而,传统像素画创作需要耗费大量时间,特别是当开发者需要为RPG游戏制作数百种道具图标时…...

计算机毕业设计:基于Python与协同过滤的美食推荐系统 Django框架 可视化 协同过滤推荐算法 菜谱 食品 机器学习(建议收藏)✅

博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...

tao-8k入门必看:零基础部署8K Embedding模型,支持中文长文本向量化

tao-8k入门必看:零基础部署8K Embedding模型,支持中文长文本向量化 想要让机器理解中文文本的含义吗?tao-8k模型可以帮你把任意长度的中文文本转换成高维向量,让计算机能够"读懂"文本内容并进行相似度比较、语义搜索等…...

Docker镜像拉取终极指南:无需Docker环境也能轻松获取镜像

Docker镜像拉取终极指南:无需Docker环境也能轻松获取镜像 【免费下载链接】docker-pull-tar 项目地址: https://gitcode.com/gh_mirrors/do/docker-pull-tar 在当今云原生时代,Docker镜像已经成为应用部署的标准单元。然而,你是否曾遇…...

MCP采样接口调用流重构预警(仅限首批通过CNCF MCP v2.6认证团队内部披露)

第一章:MCP采样接口调用流重构的背景与战略意义在大规模分布式监控系统中,MCP(Metrics Collection Protocol)采样接口长期承担着高频、低延迟的指标采集任务。随着业务规模从单集群扩展至跨云多活架构,原有基于同步阻塞…...

3-24工作规划

1.规划好自动驾驶项目落地方案(Apollo,autoware)2.文献自动化抓取项目进行到了,抓取多个文献的调试环节,当前较少人工介入3.mcp项目当前进行到了算法上车不好用,需要复杂的调试,重构工作。4.地铁…...

快速部署coze-loop:本地运行,安全高效,代码优化不求人

快速部署coze-loop:本地运行,安全高效,代码优化不求人 1. 为什么开发者需要本地代码优化工具 在日常开发中,我们经常遇到这样的场景:一段看似简单的代码运行效率低下,或者几个月后连自己都看不懂当初写的…...

8种内容获取技术解析与实用指南

8种内容获取技术解析与实用指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息时代,优质内容常被付费墙阻隔。本文将系统解析内容获取的核心技术,提供8…...

GLM-4.7-Flash应用场景探索:从内容创作到代码生成,实测效果分享

GLM-4.7-Flash应用场景探索:从内容创作到代码生成,实测效果分享 1. 为什么选择GLM-4.7-Flash? 1.1 新一代MoE架构大模型 GLM-4.7-Flash采用了创新的混合专家架构(MoE),总参数量达到300亿,但在…...

传统行业数字化新选择:用 PandaWiki 自建企业知识库,告别第三方依赖与 API 收费

前言在零售、连锁、仓储、制造、门店管理等传统行业数字化过程中,API 对接、流程文档、业务规范、设备手册、培训资料已成为核心资产。但大量企业仍依赖第三方开放平台、在线文档工具,面临收费高、数据不可控、政策变动风险、协作混乱等问题。本文基于真…...

4大技术突破如何重塑音频智能应用:Audio Flamingo 3的全模态理解创新

4大技术突破如何重塑音频智能应用:Audio Flamingo 3的全模态理解创新 【免费下载链接】audio-flamingo-3 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/audio-flamingo-3 副标题:从技术原理到落地指南的音频大模型选型实践 一、技术背景…...

Alpha Shape算法在点云边界提取中的实战应用

1. Alpha Shape算法:点云边界提取的"智能剪刀" 想象你面前有一张撒满芝麻的桌子,现在需要沿着最外层的芝麻画出一个轮廓——这就是Alpha Shape算法在点云处理中的典型应用场景。这个诞生于1984年的算法,就像一把可以自动调节弧度的…...

大模型面试攻略:小白程序员必备20道真题+面试技巧(附收藏)

大模型面试攻略:小白程序员必备20道真题面试技巧(附收藏) 本文整理了20道大模型面试真题,涵盖核心概念、架构、实操及新趋势,每题均附答题要点和解析,适合AI小白和程序员备考。内容涉及Agent基本架构、ReA…...

【部署实战】Ubuntu20.04 下 CVAT 的自动化标注功能配置与模型集成指南

1. 为什么需要自动化标注 在计算机视觉项目中,数据标注往往是最耗时耗力的环节。我曾经参与过一个车辆检测项目,团队3个人花了整整两周时间才标注完5000张图片,平均每人每天要处理近400张图片。这种重复劳动不仅效率低下,还容易因…...

飞书文档自动化导出:从繁琐操作到高效管理的技术变革

飞书文档自动化导出:从繁琐操作到高效管理的技术变革 【免费下载链接】feishu-doc-export 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 如何突破传统文档管理的效率瓶颈? 场景引入 张经理的团队最近接到一个紧急任务&…...

前端入门Web3全攻略:从零基础到DApp实战,一文吃透学习路线

作为深耕Web2的前端开发者,想转型Web3却不知从何下手?别慌!Web3前端本质是传统前端区块链交互,你的HTML/CSS/JS/框架功底完全能复用,只需补齐区块链基础知识、Web3交互工具和合约调用逻辑即可。本篇文章将带你系统性梳…...

MPU9250九轴传感器硬件原理与DMP姿态解算实战

1. MPU9250九轴惯性测量单元技术深度解析MPU9250是InvenSense(现为TDK子公司)推出的高集成度九轴运动追踪传感器,集成了三轴陀螺仪、三轴加速度计和三轴磁力计(AK8963),采用单一封装设计,支持IC…...

【2026最新】DirectX 修复工具使用详解:轻松解决 DirectX 报错、DLL 缺失与游戏闪退问题

在日常使用 Windows 系统,尤其是玩游戏或运行 3D 图形软件时,DirectX 报错是一类常见但又让人头疼的问题。 许多用户可能遇到过这样的提示:“DirectX Error”、“d3dx9_43.dll 丢失” 或 “无法加载 xinput1_3.dll”,紧接着游戏崩…...

SEO_如何通过内容优化有效提升SEO效果?(213 )

如何通过内容优化有效提升SEO效果? 在当今的数字化时代,搜索引擎优化(SEO)已经成为网站提升流量和品牌知名度的重要手段。在百度等中文搜索引擎中,内容优化是提升SEO效果的核心。如何通过内容优化有效提升SEO效果呢&am…...

2026版“非典买茅台”:中东炮火下被错杀的中国资产

当我们把本轮美伊冲突全面升级以来的市场表现摊开,一个荒诞却无比真实的现实摆在眼前:新奥能源、赤子城科技、广钢气体等在中东有业务的公司,以及承压数月的恒生科技公司,股价跟着中东局势一路杀跌。当市场用“地图思维”无差别抛…...