【ES6新特性】ES6新特性中Promise对象的概念,Async函数的使用以及Module语法

news2024/11/23 2:01:29

目录

1.Promise 对象

1.1 概念

1.2 使用

2.Async函数

2.1 同步和异步的区别

3.Mdule语法


1.Promise 对象

1.1 概念

  • Promise 是异步编程的一种解决方案,简单说就是一个容器,里面保存着某个未来才会结束 的事件(通常是一个异步操作)的结果。它可以获取异步操作的消息,Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
  • Promise有三种状态

1.2 使用

(1)创建Promise对象::在构造函数中传入一个函数,在函数中编写异步请求代码

const promise = new Promise(function(resolve, 
reject) {
  // ... some code
  if (/* 异步操作成功 */){
    resolve(value);
 } else {
    reject(error);
 }
});

(2)调用其then方法,并传入回调函数和异常函数

promise.then(function(value) {
  // success
}, function(error) {
  // failure
});

【说明】

  • Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 和 reject ,它们也是两个函数,由 JavaScript 引擎提供,不用自己部署 。
  • Promise 实例生成以后,可以用 then 方法分别指定 resolved 状态和 rejected 状态的回调函数。

 图片加载案例

 resolve和reject函数介绍

在VUE框架中已经使用Promise对象进行了异步的代码封装,组件为:Axios,我们只需要发出请求,然后.then处理响应数据即可。

2.Async函数

async函数可以将异步操作变为同步操作。

Async函数

            作用:声明当前函数为同步函数

            使用:结合await关键字来使用

            内容:

                async function 函数名(){

                    .....

                    await 调用异步函数();

                    ....

               

                }

当前函数必须等待被调用的异步函数的回调执行完毕后才能继续执行!

2.1 同步和异步的区别

(1)同步操作

同步操作是指代码按顺序执行,前一个操作必须完成才能执行下一个操作。也就是说,程序会等待一个操作完成之后才会继续执行后面的代码。

特点

  • 代码执行是线性的,即按照代码出现的顺序执行。
  • 等待操作完成可能会阻塞执行流程,影响性能。
  • 如果一个操作耗时较长,后续的操作都会被阻塞,直到这个操作完成。

(2)异步操作

异步操作是指代码不需要等待一个操作完成就能继续执行下一个操作。异步操作允许代码在等待耗时操作完成的同时继续执行其他任务。

特点

  • 代码执行是非线性的,即可以跳过等待操作继续执行其他任务。
  • 不会阻塞执行流程,可以提高程序的性能和响应速度。
  • 通常使用回调函数、Promises 或者 async/await 来处理异步操作的结果。

3.Mdule语法

ES6 模块是通过 export 命令显式指定输出的代码,再通过 import 命令 输入,提升Js代码的重用性,避免资源过度引入!

(1)如果想为输入的变量重新取一个名字, import 命令要使用 as 关键字, 将输入的变量重命名。

(2)除了指定加载某个输出值,还可以使用整体加载,即用星号( * ) 指定一个对象,所有输出值都加载在这个对象上面

(3)为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用 到 export default 命令,为模块指定默认输出。

其他模块加载该模块时, import 命令可以为该匿名函数指定任意名字。

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

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

相关文章

初识QT:从创建到认识

QT怎么安装这里就不说了,直接从使用开始 文章目录 1.QT项目的创建及介绍2.Hello QT!2.1 图形化形式创建2.2 代码形式创建 3.对象树3.1 内存泄漏与对象树3.2 通过C类理解释放过程 4.乱码问题4.1 如何查看编码方式4.2 如何处理乱码 提示:QT项目…

arm 指令移位操作(11)

逻辑左移: 可以使寄存器也可以是 立即数 LSL : 字母缩写 举例: MOV R0,R1 ,LSL #2 向左移位后,右面填0补充 逻辑右移: 可以使寄存器也可以是 立即数 LSR : 字母缩写 举例&…

10天速通Tkinter库——Day7:主菜单及图鉴

本篇博客我将介绍Tkinter实践项目《植物杂交实验室》中的杂交实验室主菜单、基础植物图鉴、杂交植物图鉴、杂交植物更多信息四个页面的制作。 它们作为主窗口的子页面实例,除了继承主窗口的基础设置(如图标、标题、尺寸等等)、还可以使用主窗…

《黑神话:悟空》游戏中的福建元素

《黑神话:悟空》作为一款深受玩家喜爱的动作角色扮演游戏,不仅在游戏剧情和角色设计上独具匠心,还巧妙地融入了丰富的中国传统文化元素,其中福建元素尤为突出。以下是对游戏中福建元素的详细解析: 一、地域文化与背景…

《机器学习》—— 支持向量机(SVM)实现二分类问题

文章目录 一、什么是支持向量机(SVM)1、SVM两个基本概念2、SVM的原理 二、示例:支持向量机(SVM)实现二分类问题1、先选取两个特征,并进行可视化2、选取所有的特征传入模型,并对模型进行评估 一、…

回归预测|基于北方苍鹰优化核极限学习机的数据预测Matlab程序NGO-KELM 多特征输入单输出

回归预测|基于北方苍鹰优化核极限学习机的数据预测Matlab程序NGO-KELM 多特征输入单输出 文章目录 一、基本原理1. 基本原理核极限学习机(KELM) 2. NGO-KELM回归预测流程1. 数据预处理2. 核极限学习机(KELM)模型构建3. 北方苍鹰优…

【Tomcat+MySQL+Redis源码安装三件套】

TomcatMySQLRedis源码安装三件套 Tomcat部分概念Tomcat的作用Tomcat的原理Linux运维中的应用场景具体操作示例 基本使用流程实验Tomcat安装tomcat的反向代理及负载均衡源地址hash(不能负载)tomcat负载均衡实现(使用cookie) memcached 操作命令 理论补充结…

大数据系统测试——大数据系统解析(上)

各位好,我是 道普云 欢迎关注我的主页 希望这篇文章对想提高软件测试水平的你有所帮助。 在本文中我们一起来看一下大数据系统每一个层次需要解决的技术问题和对应的一些技术需求。以此来作为学习大数据系统测试的基础。 数据收集层主要是进行数据源的分布式、…

sqli-labs靶场通关攻略 31-35

主页有sqli-labs靶场通关攻略 1-30 第三一关 less-31 闭合方式为?id1&id1 ") -- 步骤一:查看数据库名 http://127.0.0.1/less-31/?id1&id-1%22)%20union%20select%201,database(),3%20-- 步骤二:查看表名 http://127.0.0.1/less-31/?…

Redis 实现哨兵模式

目录 1 哨兵模式介绍 1.1 什么是哨兵模式 1.2 sentinel中的三个定时任务 2 配置哨兵 2.1 实验环境 2.2 实现哨兵的三条参数: 2.3 修改配置文件 2.3.1 MASTER 2.3.2 SLAVE 2.4 将 sentinel 进行备份 2.5 开启哨兵模式 2.6 故障模拟 3 在整个架构中可能会出现的问题 …

【FastAPI】—— 01 创建FastAPI项目

1.FastAPI框架介绍 FastAPI是⼀个现代、快速(⾼性能)的Web框架,⽤于构建API。是建⽴在Starlette和Pydantic基础上的。它基于Python3.7的类型提示(typehints)和异步编程(asyncio)能⼒&#xff0c…

软件设计原则之开闭原则

开闭原则(Open-Closed Principle, OCP)是软件设计中的一个重要原则,由伯特兰梅耶(Bertrand Meyer)在1988年提出。该原则强调软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭…

【机器学习】 7. 梯度下降法,随机梯度下降法SGD,Mini-batch SGD

梯度下降法,随机梯度下降法SGD,Mini-batch SGD 梯度下降法凸函数(convex)和非凸函数梯度更新方向选择步长的选择 随机梯度下降SGD(Stochastic Gradient Descent)梯度下降法:SGD: Mini-batch SGD 梯度下降法 从一个随机点开始决定下降方向(重要&#xff…

关于kafka的分区和消费者之间的关系

消费者和消费者组 当生产者向 Topic 写入消息的速度超过了消费者(consumer)的处理速度,导致大量的消息在 Kafka 中淤积,此时需要对消费者进行横向伸缩,用多个消费者从同一个主题读取消息,对消息进行分流。 …

【JVM】OOM与调优(二)

OOM与调优 6.JVM工具如jps 该命令是纯Java编写的 -q:只显示Java进程的ID -m:输出Java进程的ID main函数所在类的名字 传递给main函数的参数 -l:输出Java进程的IDmain函数所在类的全限定名(包名类名) -v:输出Java进程的IDmain函数所在类的名称传递给JVM的参数 应用&am…

在野漏洞的应急响应流程

许多时候,对于负责安全工作又不太擅长安全漏洞技术的人员而言,如何应对突发漏洞是工作中主要的难点,这里的突发漏洞指的是两类:一类是通过新闻、咨询推送,被社会舆论所有关注的CVE漏洞,比如前段时间所谓的核…

【YOLOv10改进[Conv]】感受野注意力卷积RFAConv(2024.3)| 使用RFAConv 改进v10目标检测效果 + 含全部代码和详细修改方式

本文将进行在YOLOv10中使用RFAConv,助力YOLOv10目标检测效果,文中含全部代码、详细修改方式。助您轻松理解改进的方法。

手撕M.2 的B-KEY M-KEY、M+B KEY定义

SSD 尺寸与规格 我们在买ssd的时候,商家都会说什么ssd是2280还是2242规格的,这里的规格实际上就是代表的ssd的尺寸大小 M.2模组的尺寸目前有11种,用Type xxyy的方式表示,xx表示宽度,yy表示长度,单位为毫米。例如上面提…

(mcu) 嵌入式基础简单入门(程序架构分析)

文章目录 💽前言💽软件框架📀工具环境📀模板工程📀编译后📀Code📀典例举例 💽Keil 使用notes⭐END🌟关注我 💽前言 本文为一份简单入门笔记,以 st…

算法-单词规律(290)

leetcode题目链接 这道题用哈希表来解决 一个哈希表存放从单词到字符的映射,一个存放从字符到单词的映射,依照空格分隔字符,并将每个字符存放到vector字符数组, 遍历 pattern,对于每个字符 c 和对应的单词 w&#xf…