Promise概念介绍
Posted 若兰明月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Promise概念介绍相关的知识,希望对你有一定的参考价值。
Promise概念介绍
- 1、Promise 是一个构造函数,既然是构造函数,那我们就可以
new Promise()
得到一个Promise的实例 - 2、在 Promise 上,有两个函数,分别叫做 resolve (成功之后的回调函数) 和 reject (失败之后的回调函数)
- 3、在 Promise 的构造函数 Prototype 属性上,又一个 .then() 方法,也就是说只要是Promise 构造函数创建的实例,都可以访问到 .then() 方法
- 4、Promise 表示一个异步操作;每当我们new 一个 Pormise 的实例,这个实例就表示一个具体的异步操作
- 5、既然 Promise 创建的实例是一个异步操作,那么这个异步操作的结果就只能有两种状态
- 5.1、状态一:异步执行成功了 需要在内部调用 成功的额回调函数 resolve 把结果返回给调用者
- 5.2、状态二:异步执行失败了 需要在内部调用失败的回调函数 reject 把结果返回给调用者
- 5.3、由于 Promise 的实例是一个异步操作,所以内部拿到操作结果之后,无法使用 return 把操作结果返回给调用者,只能使用回调函数的形式,来把成功或者失败的结果,返回给调用者。
- 6、我们可以在 new 出来的 Promise 实例上,调用.then() 方法,预先为这个Promise异步操作,指定 成功(resolve) 和失败(reject) 回调函数
使用Promise
//注意这里new 出来的Promise 只是代表【形式上的一个异步操作】
//什么是形式上的异步操作, 就是说 我们只知道他是一个异步操作,但是做什么具体的异步操作,目前还不知道
<!--var promise = new Promise()-->
//这是一个具体的异步操作
var promise = new Promise(function()
//这个function里面具体的相关操作
)
每当new 一个 Promise 实例的时候 就会立即执行这个异步操作中的代码
也就是说 new 的时候 除了能得到一个promise实例之外,还会立即调用我我们为 Promise 构造函数传递的那个 function 执行这个function中的异步操作的代码
Promise的异常捕获和作用
需求:
哪怕签名的 Promise 执行失败了,但是为了不要影响后续的 Promise 的正常执行,此时我们可以单独为每个 promise 通过.then 指定一下失败的回调
有时候还有这样的需求 和上面的需求相反,如果后续的Promise执行依赖于前面的Promise的执行的结果,如果前面的失败了,则后面的不需要执行,也就是前面一旦有出错,后续不需要执行
在前面的promise里面不进行catch捕获异常,而是在最后一个promise进行catch进行异常捕获
以上是关于Promise概念介绍的主要内容,如果未能解决你的问题,请参考以下文章