ES6 笔记03

01 回调地狱

        回调地狱: 回调函数嵌套回调函数 嵌套过深导致维护不方便

02 promise语法的基本使用

        promise语法的基本使用:

                1.new Promise 对象 并接收新对象

                2.在构造函数里面传入回调函数

                3.回调函数里面有两个形参: resolve reject

                        resolve  表示积极状态

                        reject  表示消极状态

                4.在回调函数里面写 异步的代码

                5.一旦产生结果 需要调用resolve 或者reject函数

                6.如果结果是积极地(正确的)         调用resolve(传入正确的结果)

                    如果结果是消极的(错误的)        调用reject(传入错误的结果)

                7.外部通过Promise对象.then(回调函数) 接收正确结果

                    通过Promise对象.catch(回调函数) 接收错误结果

                8.也就是说 Promise内部 如果最终执行的是resolve 那么外部就是then触发

                    如果内部最终执行的是reject 那么外部就是catch触发

03 Promise解决回调地狱

        Promise是如何解决回调地狱的?

                在then的回调函数里面可以继续return一个Promise对象

                这样then方法就可以继续调用then方法了,

                第二个then匹配到第一个then方法里面的Promise  以此类推

                

04 Promise语法中的catch

        Promise里面异步代码执行正确 调用resolve  执行错误调用reject

        catch的使用方法有两种:

                1.Promise.then(正确结果的回调函数,错误结果的回调函数)

                        这样写的catch只能匹配当前promise对象的错误信息

                        如果是  链式编程  多个then  那么catch要放在外面 使用第二种写法

                2.promise.then(正确的回调).catch(失败的回调)

                        如果有多个then方法 那么catch只需要写一个

                        但凡其中有一个promise对象 产生错误结果

                        那么立马匹配catch 剩余的then不在执行

05 promise的一些静态方法

        promise 对象除了then 和catch 以外 还有finally 方法

        也就是说本次promise对象无论触发的是then还是catch 都会执行finally方法

        finally方法传入一个回调函数 回调函数没有参数 单纯的表示执行完成

        可以把then和catch里面统一处理的代码 放到finally里面执行

        promise的一些静态方法:

        1.promise.all( )

                参数需要传入一个数组 数组里面每个元素都是一个promise对象

                作用: 同一时间开始执行数组内所有的promise代码

                          然后等到所有的promise的第一步代码全部执行完毕

                          一次性把所有的结果放到一个数组里面

                all方法的返回值是一个promise对象 这个对象的then方法 里面接收总的结果

                结果是数类型

                但凡有任意一个promise的状态是reject  那么promise.all最终的状态就是reject

       2.promise.race() 

                参数需要传入一个数组 数组里面每个元素都是一个promise对象

                返回值是一个promise对象

                作用: 多个promise一起执行 那个promise先执行完

                        那么就以这个promise的结果为最终结果

                        如果这个promise是失败状态 那么race最终就是失败

                        如果这个promise是成功状态 那么race最终就是成功

        3.promise.any()

                参数需要传一个数组 数组里面每个元素都是一个promise对象

                返回值是一个promise对象

                作用: 多个promise一起执行 哪个promise先执行完

                那么就以这个promise的结果为最终结果

                如果这个promise是失败状态 那么会找下一个执行完正确的结果的promise为最终结果

                如果这个promise是成功状态  那么any就把当前结果作为最终结果

                any方法的目的就是找正确的结果 

                        如果第一个不正确就往下继续执行 哪一个正确就停止运行把结果返回

                        如果都失败就返回 AggregateError: All promises were rejected

                Promise.reject();

                        这个方法可以快捷的诞生有一个状态为rejected的Promise对象

                Promise.resolve()

                        这个方法可以快捷的诞生有一个状态为resolve的Promise对象

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

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

相关文章

Springboot整合 Spring Cloud Gateway

1.Gateway介绍 1.是spring cloud官方推出的响应式的API网关框架,旨在为微服务架构提供一种简单有效的API路由的管理方式,并基于Filter的方式提供网关的基本功能,例如:安全认证,监控,限流等等。 2.功能特征…

【逆天OP懒狗的JAVA自学笔记--5.判断和循环】第二阶段始篇

文章目录 前言一、流程控制语句1.顺序结构(最简单)2.分支结构2.1 if 语句2.1.1 if语句的三种格式2.1.2 if 的注意事项 2.2 switch 语句2.2.1switch 的扩展知识 3.循环结构3.1 for 循环 扩展小点://1.求和的变量不能定义在循环的里面&#xff…

php全局变量

PHP 全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。 PHP 超级全局变量列表: $GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILE…

解决finalshell无法连接,一直提示登陆密码

问题描述 在使用FinalShell连接配置虚拟机时,无法正常连接,一直提示输入登录密码,即使输入的密码是正确的。 切换到root 模式,输入密码 su root 此时需要输入root账户的密码,但是我们又不知道root的密码,怎么办&…

嵌入式STM32中I2C控制器外设详解

STM32中的I2C外设主要负责IIC协议与外界进行通信,就像USART外设一样,我们在学习的过程中,需要抓住I2C应用的重点。 STM32在使用I2C协议时,可以通过两种方式, 一是软件模拟协议 意思是使用CPU直接控制通讯引脚的电平,产生出符合通讯协议标准的逻辑。例如,像点亮LED那样…

大数据模型的选择与安装

大数据模型的选择和安装是一个复杂的过程,涉及多个因素,包括模型的通用能力、特定任务的性能、数据效率、评估完整性、成本以及部署的硬件和软件环境。以下是一些关于大数据模型选择与安装的考虑因素和步骤: 选择大数据模型的考虑因素&#…

VUE基础之scoped和TodList

目录 scoped样式 总结TodoList案例 scoped样式 作用&#xff1a;让样式在局部生效&#xff0c;防止冲突。 写法&#xff1a;<style scoped> <style scoped> .demo{background-color: pink; } </style> 注&#xff1a;如果在APP.vue中写style代码则是所有组…

绝地求生:经典艾伦格即将回归!绝地求生艾伦格进化史

29.2版本经典艾伦格地图将会回归&#xff0c;让我回顾一下艾伦格地图的改动历史吧&#xff01; 回归时间 2016年早期A测 A测 4.1版本&#xff1a;艾伦格-新视界 主要区域变动 Military Base(军事基地) Military Base Mylta Power&#xff08;大电&#xff09; Mylta Power …

微信小程序开发题库

一. 单选题&#xff08;共12题&#xff0c;60分&#xff09; 1. (单选题) 有如下HTML代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Document</title> <style> ul,li{ margin:0; p…

Vue组件化开发

Vue.js 的组件化开发是 Vue 的核心特性之一&#xff0c;它允许你将复杂的 UI 拆分成更小的、可重用的部分&#xff0c;即组件。每个组件都包含了自己的模板、逻辑和样式&#xff0c;可以独立开发和测试&#xff0c;然后与其他组件组合起来形成完整的应用程序。 以下是 Vue 组件…

【计算机网络】数据链路层 组帧 习题4

组帧 发送方根据一定的规则将网络层递交的分组封装成帧(也称为组帧)。 组帧时&#xff0c;既要加首部&#xff0c;也要加尾部&#xff0c;原因是&#xff0c;在网络信息中&#xff0c;帧是以最小单位传输的。所以接收方要正确地接收帧&#xff0c;就必须清楚该帧在一串比特串中…

SQLite 创建数据库

语法 sqlite3 命令的基本语法如下&#xff1a; $sqlite3 DatabaseName.db 通常情况下&#xff0c;数据库名称在 RDBMS 内应该是唯一的。 实例 如果您想创建一个新的数据库 <testDB.db>&#xff0c;SQLITE3 语句如下所示&#xff1a; $sqlite3 testDB.db SQLite ver…

EasyExcel 中实体类的注解@ExcelProperty

ExcelProperty(value "职务", index 0) value 与index 的优先级, 实测得出下面结论. 1、只有value : 按照value 的匹配 2、只有index: 按照index 的匹配 3、 同时有value和index: 按照index的匹配. 结果: 按照index的匹配, 找到的数据 {"administrat…

大模型管理工具:SWIFT

目录 一、SWIFT 介绍 二、SWIFT 安装 2.0 配置环境(可选) 2.1 使用pip进行安装 2.2 源代码安装 2.3 启动 WEB-UI 三、部署模型 3.0 deploy命令参数 3.1 原始模型 3.2 微调后模型 一、SWIFT 介绍 SWIFT&#xff08;Scalable lightWeight Infrastructure for Fine-Tuni…

MySQL8.0就地升级到MySQL8.4.0

MySQL8.0就地升级到MySQL8.4.0 升级需求&#xff1a;将8.0.35升级到8.4.0,以In-Place方式直接升级到MySQL8.4.0。 数据库版本 操作系统版本 原版本 8.0.35 Centos7.9 x86_64 新版本 8.4.0 Centos7.9 x86_64 关闭现有版本MySQL&#xff0c;将二进制或包替换成新版本并…

知识付费系统的设计与实现,职业在线教育没有学生怎么办?

目前的市场看来&#xff0c;很多学生都会尽自己的努力考取大学&#xff0c;反而职业在线学习相比以前已经沉寂很多&#xff0c;因为职业学校主要是针对成绩不太好的学生&#xff0c;但是成绩不好的学生要么选择重新复读&#xff0c;要么直接放弃&#xff0c;很少会有人选择去职…

对比学习笔记

这里写目录标题 什么是对比学习计算机视觉中的对比学习对比学习在NLP中的应用 什么是对比学习 对比学习是在没有标签的前提下学习样本之间的是否相似&#xff0c;其实和二分类比较相似&#xff0c;判断两个图像是不是属于同一个类别。换句话来说就是把相近的分布推得更近&…

用Arm CCA解锁数据的力量

安全之安全(security)博客目录导读 目录 CCA将如何改变Arm架构呢? 在实践中部署CCA 释放数据和人工智能的全部力量和潜力 早期计算中最大的挑战之一是管理计算资源&#xff0c;以最大化计算效率同时提供给不同程序或用户分配资源的分离。这导致了我们今天大多数使用的时间…

MinIO学习笔记

MINIO干什么用的&#xff1a; AI数据基础设施的对象存储 为人工智能系统提供数据支持&#xff0c;数据存储&#xff1b;对象存储&#xff08;Object Storage&#xff09;是一种数据存储架构&#xff0c;它以对象为单位来处理、存储和检索数据&#xff0c;每个对象都包含了数据本…

ModuleSim 仿真找不到模块 module is not defined

提示如下&#xff1a; # vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs""acc"" pulse_generator_tb # Start time: 14:26:25 on May 10,2024 # ** Note: (…