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

es6 new Promise

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

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

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

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.lryc.cn/news/33240.html

相关文章:

  • Python爬虫实战:使用Requests和BeautifulSoup爬取网页内容
  • 质量指标——什么是增量覆盖率?它有啥用途?
  • Hive---拉链表
  • 日常文档标题级别规范
  • C++学习记录——십이 vector
  • Lombok常见用法总结
  • 【Ajax】异步通信
  • 近红外吸收荧光染料IR-808,IR-808 NH2,IR-808 amine,发射808nm 性质分享
  • 一图来看你需要拥有那些知识储备
  • 复位和时钟控制(RCC)
  • OpenWrt 专栏介绍00
  • udk开发-稀里糊涂
  • Java之内部类
  • 【MyBatis】篇二.MyBatis查询与特殊SQL
  • CE认证机构和CE证书的分类
  • Lesson 8.2 CART 分类树的建模流程与 sklearn 评估器参数详解
  • 【Unity】程序集Assembly模块化开发
  • 马尔可夫决策过程
  • win11下载配置CIC Flowmeter环境并提取流量特征
  • JDK如何判断自己是什么公司的
  • 大数据技术之HBase(二)HBase原理简介
  • 垒骰子(爆搜/DP)
  • Telink之标准SDK的介绍_1
  • JNI内两种方式从C/C++中传递一维、二维、三维数组数据至Java层详细梳理
  • 快递计费系统--课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)
  • JS - 自定义一周的开始和结束,计算日期所在月的周数、所在月第几周、所在周的日期范围
  • Linux :理解编译的四个阶段
  • 197.Spark(四):Spark 案例实操,MVC方式代码编程
  • Vue 项目如何迁移小程序
  • unit1-问候以及介绍