js 同步、异步的概念,async 和 await 的说明

啥是同步、啥是异步

JavaScript中,同步(Synchronous)和异步(Asynchronous)是两种处理代码执行顺序的主要方式,

同步(Synchronous)

执行顺序:在同步编程中,代码按照书写顺序,一行一行地执行,每一行代码都必须等待上一行代码执行完毕后才能执行,如果在执行过程中,遇到耗时操作(如网络请求或大量计算),程序会阻塞,直到该操作完成。资源利用:同步编程对系统资源的利用率较低,因为在等待耗时操作完成期间,程序无法执行其他任务。适用场景:适用于,必须按照特定顺序执行,且不需要等待外部资源或异步操作的情况。

异步(Asynchronous)

执行顺序:在异步编程中,代码的执行顺序并非严格按照书写顺序,当遇到耗时操作时,程序不会等待该操作完成,而是继续执行后面的代码,当耗时操作完成后,再通过回调函数、Promise、async/await 等方式通知程序处理结果。资源利用:异步编程可以充分利用系统资源,因为在等待耗时操作完成期间,程序可以执行其他任务。适用场景:适用于那些需要等待外部资源(如网络请求、文件读写等)或异步操作的情况,以提高程序的响应速度和用户体验。

async、await

async 和 await,是JavaScript中用于处理异步操作的关键字,它们本身并不是同步或异步,而是用于简化异步操作的语法糖

async函数

async函数,是用来定义一个异步函数的关键字,它会返回一个Promise对象,在async函数中,可以使用await关键字来等待一个Promise对象的状态变更,以实现同步的写法。

await关键字

await关键字,只能在async函数中使用,用于等待一个Promise对象的状态变更,当使用await关键字等待一个Promise对象时,代码会暂停执行,直到该Promise对象状态变为resolved或rejected,然后继续执行后续代码。

总结

async和await本身并不是同步或异步,它们是用于处理异步操作的语法糖,可以让异步操作以同步的方式来编写和理解。使用async和await,可以简化异步操作的编写,避免回调地狱和提高代码的可读性。

因此

async和await本身并不是同步或异步,而是用于处理异步操作的工具,它们可以让异步操作以更直观、简洁的方式来编写和管理。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】优先队列

优先队结构的不同物理结构与常用操作算法 优先队列是一种特殊的队列,队列中的元素具有优先级,每次弹出操作会弹出优先级最高的元素。 优先队列常用的物理结构有: 1. 数组:简单但不高效,插入和删除操作需要移动大量元素,时间复杂度高。 2. 二叉堆:是一种完全二叉树,通常用数…

MySQL创建帐号和权限设定

1 使用root权限登录MySQL服务器 mysql -u root -p; 2 创建用户名,用于项目管理或者普通人员,只能操作特定的数据库 CREATE USER 用户名localhost IDENTIFIED BY 密码; CREATE USER 用户名% IDENTIFIED BY 密码; 这将为远程客户端创建一个MySQL用户&am…

Nacos采坑:非集群Nacos不要使用同一个MySQL数据库

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Nacos 致力于帮助您…

【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

面包屑新玩法,ReactRouter+Ant Design实现动态渲染

在Ant Design中,可以通过Breadcrumb组件结合react-router库实现动态生成面包屑导航。具体步骤如下: 定义路由配置数据结构 我们需要在路由配置中添加额外的面包屑相关信息,例如面包屑标题、icon等。例如: const routes [{path: /,breadcrumbName: 首页},{path: /users,brea…

remote: HTTP Basic: Access deniedfatal: Authentication failed for

$ git push -u origin main remote: HTTP Basic: Access denied fatal: Authentication failed for https://gitcode.com/edenl/GD32E350_hid_keyboard.git/ 使用访问令牌做为密码登录即可。

拼多多面试题——力扣版测试用例纠错

最近我看到力扣上这个题目,用了三种方法,结果没有一种正确,我就纳闷儿了,为何总有一个测试用例过不了,结果我发现这个测试用例确实有问题啊。。。。。 题目: 表:Logs ----------------------…

LeetCode_链表的回文结构

✨✨所属专栏:LeetCode刷题专栏✨✨ ✨✨作者主页:嶔某✨✨ 题目描述: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bo…

JS----前端不同格式的 UUID生成

前端 UUID生成 export const generateUUID () > {let timestamp new Date().getTime()let performanceNow (typeof performance ! undefined && performance.now && performance.now() * 1000) || 0return xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replac…

多端统一开发框架Taro、UniApp和WeApp这三个应用各自在前端开发领域有着独特的定位和功能

Taro、UniApp和WeApp这三个应用各自在前端开发领域有着独特的定位和功能,下面是对它们的详细介绍以及三者之间的对比,包括各自的优缺点和社区维护支持程度。 一、应用介绍 Taro Taro是一个多端统一开发框架,支持使用React语法编写一次代码…

关于页面尺寸变动,echarts或地图等自适应的一种方法(监听特定DOM元素尺寸变化)

1.问题 项目中,页面做了响应式布局.大量使用了弹性布局,导致盒子没有固定的宽高,在菜单切换或者窗口缩放时,echarts或者地图元素就会出现扭曲,错版,填充不完全,溢出等问题. 当通过监听window的resize事件时,难以精准捕捉目标容器,同时echarts的resize()方法并不一定达到效果 …

基于智能推荐的校园兼职招聘平台

3协同过滤算法简介 目前,推荐算法有很多种,可以应用于日常生活的许多领域,对大量数据进行处理和分析,然后进行分类。它将显示用户可能感兴趣的内容,这是推荐算法的主要功能之一[1]。 协同过滤算法通常包括两类&#…

详解数据结构:栈

一、顺序栈 顺序栈的存储方式如下: 从图中可以看出,顺序栈需要两个指针,base指向栈底,top指向栈顶。 typedef struct SqStack {ElemType *base; //栈底指针ElemType *top; //栈顶指针}SqStack; 说明: ElemType是元…

【智能算法】水循环算法(WCA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2012年,H Eskandar等人受到自然水循环过程启发,提出了水循环算法(Water Cycle Algorithm, WCA)。 2.算法原理 2.1算法思想 WCA模拟了大自然水循环过…

稳态视觉诱发电位 (SSVEP) 分类学习系列 (1) :FFT-CNN-CCA

稳态视觉诱发电位分类学习系列:FFT-CNN-CCA 0. 引言1. 主要贡献2. 提出的方法2.1 数据处理2.2 卷积神经网络的结构 3. 结果3.1 健康参与者结果比较3.2 卒中患者结果比较 4. 总结欢迎来稿 论文地址:https://ieeexplore.ieee.org/document/8708243 论文题目&#xff1…

日志分析简单总结

1、分析日志的目的 误报:不是攻击而上报成攻击 漏报:是攻击而没有防御的情况 日志分析可以判断是否误判或者漏判,可以溯源攻击行为 在护网作为防守方必备的技能(分析NGAF和态势感知,发现异常) 2、攻击出现…

探索比特币符文热:市场趋势与持续性分析

在加密货币世界中,比特币一直是备受关注的焦点之一。然而,近年来,随着DeFi(去中心化金融)的兴起,一种新的潮流开始崭露头角——比特币符文。本文将探讨比特币符文的兴起,分析市场趋势&#xff0…

iOS 17上如何恢复数据?iOS 17 数据恢复软件

“您好,我正在为我的 iPhone 寻找一款iOS 17 数据恢复软件。升级到 iOS 17 后,我丢失了 iPhone 上的所有照片、联系人和消息。有什么建议吗?” ——丹尼 iOS 17数据恢复软件下载 升级到iOS 17后如何恢复丢失的数据?由于在 iPhone…

聊聊 Linux iowait

哈喽大家好,我是咸鱼。 我们在使用 top 命令来查看 Linux 系统整体 CPU 使用情况的时候,往往看的是下面这一列: %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 68.0 wa, 0.0 hi, 0.0 si, 0.0 st其中,man 手册解释 wa 表示 …

异地组网、内部网络需求同时满足,贝锐企业路由器G300开箱体验

由于公司最近新增了办事处,作为IT管理员的我不仅需要搞定办事处的网络,还需要解决远程访问公司内部办公系统以及文件存储服务器的问题。 在此之前,只有少量人员出差时,我们采用了虚拟专网方案来进行远程访问。然而,新…