11.18--期约

以往的异步只支持定义回调函数来表明异步操作完成,通常看到回调地狱。
1.promise:(1)是异步编程的一种解决方案。里面保存着异步操作。
(2)是个有状态的对象,{
pending:待定;
fullfilled(resolve):兑现,解决。
reject:拒绝。
而控制期约状态的转换是通过执行函数实现的;
在这里插入图片描述
}
注:三种状态不可逆;在promise里,私有的;不能被外部代码修改。
2.用途:{
(1)抽象的表示一个异步操作,(判断http状态码处于那种状态);
(2)期约封装的异步操作会实际生成某个值,而程序期待期约状态改变时可以访问这个值。(前端请求接口,若code === 200,则获取异步操作接口的json值);
}
3.promise基础:{
(1)new操作符来实例化。
(2)需要传入执行期函数作为参数,即箭头函数作为回调。
}
4.promise的静态方法:{
promise.resolve(),成功;
promise.reject():失败,当是reject时,抛出的错误不能通过try/catch捕获,try/catch不能捕获异常的。只能通过拒绝处理程序捕获,即then()函数。
}
作用:使期约的状态不必一开始就是待定pedding状态,参数只有一个,多余的会忽略。
5.promise的实例方法:{
(1)then(),接受两个参数,位置不能乱:{
1.onResolved处理程序:promise执行返回resolved()执行的函数。
2.onRejected处理程序:promise执行返回reject()执行的函数。
注:对于不想传入的处理程序,用null代替。
},
(2)catch():用于给promise添加拒绝处理程序,相当于promise.prototype.then(null,onRejected)
(3)finally:成功或拒绝都会执行。一般用于添加清理代码,父期约的传递.
}
注:
在执行函数中,成功的值和拒绝的值分别是作为resolve()和reject()的第一个参数往后传的,然后,这些值又会传给他们各自的处理程序。
then、catch、onRejected相当于try/catch。出发点都是捕获错误之后将其隔离。

6.异步函数:
解决异步函数结构组织代码问题。
async:可用在函数声明、函数表达式、箭头函数和方法上。
使用async关键字可以让函数具有异步特征,但总体上代码是同步的。在异步函数里,使用return 会返回一个期约对象—>异步函数始终返回期约对象。
7.await:有暂停和恢复执行的能力。目的是让异步代码写的更像同步,必须写再async里。
限制: {
(1)必须在异步函数中使用和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值