其他分享
首页 > 其他分享> > ES6特性 -- Promise特性

ES6特性 -- Promise特性

作者:互联网

一、什么是Promise

1.概念

2.Promise的状态改变

1.    pending变为fulfilled
2.    pending变为rejected
说明: 只有这2种, 且一个promise对象只能改变一次
      无论变为成功还是失败, 都会有一个结果数据
      成功的结果数据一般称为vlaue, 失败的结果数据一般称为reason

二、为什么使用Promise

1.指定回调函数的方式更加灵活

2.支持链式调用, 可以解决回调地狱问题

1. 什么是回调地狱?

回调函数嵌套调用, 外部回调函数异步执行的结果是嵌套的回调执行的条件

2. 回调地狱的缺点?

不便于阅读

不便于异常处理

3. 一个不是很优秀的解决方案?

promise链式调用

4. 终极解决方案?

async/await

三、如何使用Promise?

1.API

(1). Promise构造函数: Promise (excutor) {}

  1. excutor函数: 执行器 (resolve, reject) => {}
  2. resolve函数: 内部定义成功时我们调用的函数 value => {}
  3. reject函数: 内部定义失败时我们调用的函数 reason => {}

说明: excutor会在Promise内部立即同步回调,异步操作其中执行

(2). Promise.prototype.then方法: (onFulfilled, onRejected) => {}

  1. onFulfilled函数: 成功的回调函数 (value) => {}
  2. onRejected函数: 失败的回调函数 (reason) => {}

说明: 指定用于得到成功value的成功回调和用于得到失败reason的失败回调

返回一个新的promise对象

(3). Promise.prototype.catch方法: (onRejected) => {}

onRejected函数: 失败的回调函数 (reason) => {}

说明: then()的语法糖, 相当于: then(undefined, onRejected)

(4). Promise.resolve方法: (value) => {}

value: 成功的数据或promise对象

说明: 返回一个成功/失败的promise对象

(5). Promise.reject方法: (reason) => {}

reason: 失败的原因

说明: 返回一个失败的promise对象

(6). Promise.all方法: (promises) => {}

promises: 包含n个promise的数组

说明: 返回一个新的promise, 只有所有的promise都成功才成功, 只要有一个失败了就直接失败

(7). Promise.race方法: (promises) => {}

promises: 包含n个promise的数组

说明: 返回一个新的promise, 第一个完成的promise的结果状态就是最终的结果状态

标签:ES6,函数,--,失败,特性,reason,promise,Promise,回调
来源: https://blog.csdn.net/fwk19840301/article/details/122760907