实例对象中的一个属性
pending
1、pending 变为 resolved / fullfilled 成功
2、pending 变为 rejected 失败
说明:只有这2种,且一个promise对象只能改变一次
无论变为成功还是失败,都会有一个结果数据
成功的结果数据一般称为value,失败的结果数据一般称为reason
实例对象中的另一个属性 PromiseResult
它保存着异步任务:对象成功或者失败的结果
resolve函数和reject函数 可以对实例对象当中的PromiseResult的值进行修改
1、给Promise对象进行实例化
new Promise()
2、执行异步操作
如果成功了就会执行resolve()方法
如果失败 了就会执行reject()方法
3、promise对象的状态会变为resolved状态或者rejected状态
改变的状态取决于第二步中执行的失败与否
4、如果Promise对象是resolved状态则会执行then()方法,回调onResolved()方法
如果Promise对象是rejected状态则会执行then()方法或者catch()方法
5、生成新的Promise对象
1、Promise构造函数:Promise(excutor){}
(1)excutor函数:执行器(resolve,reject)=>{}
(2)resolve函数:内部定义成功时我们调用的函数 value=>{}
(3)reject函数:内部定义失败时我们调用的函数 reason=>{}
说明:executor会在Promise内部立即同步调用,异步操作在执行器中执行
2、Promise.prototype.then方法:(onResolved,onRejected)=>{}
(1) onResolved函数:成功的回调函数 (value)=>{}
(2)onRejected函数:失败的回调函数(reason)=>{}
说明:指定用于得到成功的value的成功回调函数和用于得到失败的reason的失败水貂返回一个新的promise对象。
3、Promise.prototype.catch方法:(onRejected)=>{}
(1)onReject函数:失败的回调函数(reason)=>{}
4、Promise.resolve方法:(value)=>{}
(1)value:成功的数据或promise对象
说明:返回一个成功/失败的promise对象
5、Promise.reject方法:(reason)=>{}
(1)reason:失败的原因
说明返回一个失败的promise对象
6、Promise.all方法:(promises)=>{}
(1)promises:包含n个promise的数组
说明:返回一个新的promise,只有所有的promise都成功才成功,只要有一个失败了,就直接失败
7、Promise.race方法:(promises)=>{}
(1)promises:包含n个Promise的数组
说明:返回一个新的promise,第一个完成的promise的结果状态就是最终的结果状态