es6 new Promise

news/2024/7/11 1:29:22 标签: es6, 前端, javascript

Promise 是一个构造函数,本身身上有 all、reject、resolve 这几个方法,原型上有 then、catch 等方法。

所以 Promise new 出来的对象确定就有 then、catch 方法。

Promise 的构造函数接收一个参数,是函数,而且传入两个参数:resolve,reject,分别表示异步操做执行成功后的回调函数和异步操做执行失败后的回调函数。

javascript">javascript">let p1 = new Promise((resolve, reject) => {
  resolve('成功')
})
 
let p2 = new Promise((resolve, reject) => {
  resolve('success')
})
 
let p3 = Promse.reject('error')
 
Promise.all([p1, p2]).then((result) => {
  console.log(result)               //['成功','success']
}).catch((error) => {
  console.log(error)
})
 
Promise.all([p1,p3,p2]).then((result) => {
  console.log(result)
}).catch((error) => {
  console.log(error)      // 'error'
})

reject 的用法

then方法能够接受两个参数,第一个对应 resolve 的回调,第二个对应 reject 的回调。

因此咱们可以分别拿到他们传过来的数据。

catch 的用法

和 then 的第二个参数同样,用来指定 reject 的回调。

即使是有错误的代码也不会报错,与 try/catch 语句有相同的功能。

all 方法的用法

Promise 的 all 方法提供了并行执行异步操做的能力,而且在全部异步操做执行完后才执行回调。

all 会把全部异步操做的结果放进一个数组中传给 then ,能够并行执行多个异步操做,而且在一个回调中处理全部的返回数据。

需要特别注意的是,Promise.all获得的成功结果的数组里面的数据顺序和

Promise.all接收到的数组顺序是一致的,即p1的结果在前,即便p1的结果

获取的比p2要晚。这带来了一个绝大的好处:在前端开发请求数据的过程中,

偶尔会遇到发送多个请求并根据请求顺序获取和使用数据的场景,

使用Promise.all毫无疑问可以解决这个问题。

下面是项目中用到的:因为页面中用到了多个form表单, 保存时先表单验证 ,每一个表单验证通过才在会then()方法里触发保存接口


http://www.niftyadmin.cn/n/128550.html

相关文章

mysql慢查询:pt-query-digest 分析

"某些SQL语句执行效率慢",这个问题总体上分为两类: 出现了慢查询语句某些查询语句没有使用索引 由于数据的写入量非常大,所以要想直接打开慢查询日志来查看到底哪些语句有问题几乎是不可能的,因为日志的刷新速度太快了…

数字三角形 购物单

题目: 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边…

工作实战之拦截器模式

目录 前言 一、结构中包含的角色 二、拦截器使用 1.拦截器角色 a.自定义拦截器UserValidateInterceptor,UserUpdateInterceptor,UserEditNameInterceptor b.拦截器配置者UserInterceptorChainConfigure,任意组装拦截器顺序 c.拦截器管理者…

uniapp在线升级关联云空间

升级中心 uni-upgrade-center - App: https://ext.dcloud.net.cn/plugin?id4542 App升级中心 uni-upgrade-center文档: https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html#uni-upgrade-center-app 升级中心 uni-upgrade-center - Admin&#…

不考虑分配与合并情况下,GO实现GCMarkSweep(标记清除算法)

观前提醒 熟悉涉及到GC的最基本概念到底什么意思(《垃圾回收的算法与实现》)我用go实现(因为其他的都忘了,(╬◣д◢)ムキー!!) 源码地址(你的点赞,是我开源的…

一图来看你需要拥有那些知识储备

技术实践 数据 关系型数据 MySQLSQLServerOraclePostgrSQLDB2 大数据存储 RedisMemcacheMongoDBHBaseHive 大数据处理 Hadoop 数据报表看板 DataGearGrafanaKibanaMetaBase 消息对列 Rabbit MQRock MQActive MQKafka 大数据搜索 SolrElasticSearchLucenHive 服务提…

day40|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…

Spring Boot 3.0系列【10】核心特性篇之应用配置的高阶用法

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言1. 命令行2. JSON3. 外部化配置3.1 配置文件加载位置3.2 导入配置3.2 属性占位符4. 加密配置5. 加载YML配置文件6. 配…