ES6 Promise

promise是一种解决异步函数传递数据问题

回调函数解决---->回调地狱

.Promise

Promise是一个对象,
使用时需要创建这个对象 new Promise()
1)创建promise对象时,需要传递一个函数作为参数

let p=new Promise((resolve,reject)=>{

});
promise被创建完毕之后,会立即执行
Promise有三种状态

进行中 pending
成功 fullfilled
失败 rejected
pending----->成功 主动调用resolve
pending---->失败 主动调用reject方法
Promise的状态一旦改变,就不可逆。

then方法

then方法可以接收两个参数,这两个参数都是函数,
第一个参数(函数):成功时的回调
第二个参数(函数):失败时的回调

then方法默认会返回一个新的promise对象

catch方法

catch 捕获的作用
能够接收一个失败的回调(参数是一个函数,promise状态失败时,会触发这个函数)

接收失败信息

方法一:使用then方法的第二个参数
方法二:使用catch方法的参数
catch可以捕获到代码中的异常
推荐使用catch来接收失败的信息

链式调用

p.then().then().then()…
then方法的第一个参数,成功时的回调函数,分两种情况:
第一种情况:返回了一个普通的数据(非promise),这个值会作为参数传递给下一个then的成功回调
第二种情况:返回了一个promise,下一个then的执行,取决于这个promise状态的改变

finally

无论promise的状态是成功,还是失败,都会执行finally中的内容

all()

Promise.all([p1,p2,p3…]) 功能是将多个promise包装为一个新的promise(返回了一个新的promise)
新的promise的状态与all中的promise p1,p2,p3的状态相关
1)若p1、p2和p3都变为fullfilled,则新的promise的状态会改变为fullfilled
2)若p1、p2或p3有一个状态为rejected,则promise的状态就会变为rejected

race()

Promise.race([p1,p2,p3…]) 功能是将多个promise包装为一个新的promise(返回了一个新的promise)
新的promise状态的改变,取决于p1,p2,p3中响应快的那个状态(状态改变最快的promise),
新promise的状态取决于状态改变最快的那个promise

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值