一、promise状态的改变
状态指的是实例对象中的一个属性 PromiseState
1.pending 未决定
2.resolved/fullfilled 成功
3.rejected 失败
pending变为resolved或者pending变为rejected。只有这两种状态,并且promise对象只能改变一次,无论变为成功还是失败都会有一个结果数据。成功的结果数据一般称为value,失败的结果称为reason。
二、promise对象的值
实例对象中的另一个属性 PromiseResult
保存着异步任务 成功或失败 的结果
修改值 通过resolve和reject进行修改
三、promise的基本流程
四、promise的API
五、promise中的方法
1.resolve方法
value:成功的数据或promise对象。说明:返回一个成功/失败的promise对象
2.reject方法
reason:失败的原因。说明:返回一个失败的promise对象。
3.all方法
(promise)=>{ }
promise:包含n个promise数组
说明:返回一个新的promise,只有所有的promise都成功才能成功,只要有一个失败了就直接失败。
4. race方法
promise:包含n个promise的数组
说明:返回一个新的promise,第一个完成的promise的结果状态就是最终的结果状态。
六、promise的几个关键问题
结果为:success undefined
成功时结果:111 222 333 失败时结果:Err
结果为:111
七、async与await
1.async函数
函数返回值为promise对象。返回的promise对象的结果由async函数执行的返回值决定
2.await函数
1. await 必须写在async函数中,但async函数中可以没有await :
2.如果await的promise失败了,就会抛出异常,需要通过t...catch捕获处理
3.await右侧的表达式一般为promise对象,但也可以是其它的值
4.如果 表达式是promise对象, await返回的是promise成功的值
5.如果表达式是其它值,直接将此值作为await的返回值
结果为:Error
3.async和await结合