https://blog.csdn.net/momdiy/article/details/77856099
1. then, catch
- promise.then(onFulfilled, onRejected)操作之后执行回调函数。Fulfilled为执行成功调用的函数,onRejected为执行失败调用的函数。
- promise.catch(onRejected)捕获到错误执行onRejected函数
3. resolve , reject
reslove类似创建promise对象的快捷方式
var promise = Promise.resolve();
promise
.then(taskA)
.then(taskB)
.catch(onRejected)
.then(finalTask);
4. race
Promise.race只要有一个promise对象进入 FulFilled 或者 Rejected 状态的话,就会继续进行后面的处理。
注:promise.race在第一个函数执行完毕后,并不会取消其他函数的执行状态,但是其余函数执行完毕之后不会再调用.then。
5. all
Promise.all 接收一个 promise对象的数组作为参数,当这个数组里的所有promise对象全部变为resolve或reject状态的时候,它才会去调用 .then 方法。
6. done
Promise 对象的回调链,不管以then方法或catch方法结尾,要是最后一个方法抛出错误,都有可能无法捕捉到(因为 Promise 内部的错误不会冒泡到全局)。因此,我们可以提供一个done方法,总是处于回调链的尾端,保证抛出任何可能出现的错误。
7. finally
finally方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。只要proise对象出现最后状态,finally方法就一定会执行。类似于一个函数的回调。
promise状态
只能由pending到fulfilled或Rejected
状态不可逆
graph LR
Pending-->Fulfilled
Pending-->Rejected
- 使用new Promise方法创建promise对象。
- 用.then或.catch。。。添加promise对象的处理函数。