Promise 几个常用的api

Promise.all([a,b,c])
等所有promise接口返回值均为 resolve时 触发.then,有一个接口返回失败,则全部返回失败,
//使用场景
使用场景:需要从前两个接口中的返回结果获取第三个接口的请求参数这种情况。 也就是需要等待两个/多个异步事件完成后,再进行回调。

Promise.allSettled([a,b,c])
无论参数实例resolve还是reject,Promise.allSettled都会执行then方法的第一个回调函数(意思就是不会catch到参数实例的reject状态),其回调函数的参数返回的数组的每一项是一个包含status和value或者reason的一组对象。status代表对应的参数实例状态值,
取值只有fulfilled(resolve状态)和rejected(reject状态),当status的值为rejected,对应的另一个对象属性就是reason了,也就是被reject的原因,而成功返回的status的值则是fulfilled,对应的另一个对象属性便是value,对应的值就是resolve的任意值。
//使用场景
使用场景:无论参数实例是否reject,最终Promise.allSettled内部都会resolve,只不过会添加一个状态status来记录对应的参数实例是否执行成功。我们可以依据这个状态去过滤掉rejected的数据,只操作fulfilled的数据,就会得到我们想要的业务逻辑了。

Promise.race([a,b,c])
//Promise.race()接收的也都是数组,数组项也都是promise实例,
//只有数组中有一项决议为成功或者失败,Promise.race也会返回对应的成功或者失败,并把值传递过来
//也就是说看决议哪个速度快,就返回的是谁

Promise.finally()
特点 无论成功或失败,都会执行 返回的是一个promise
不管promise最后的状态,在执行完then或catch指定的回调函数以后,都会执行finally方法指定的回调函数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值