Promise链式调用解决多个异步回调

本文介绍了如何使用Promise.all()和链式调用来解决在项目中遇到的异步回调问题。在获取用户ID(login())和用户详细信息(getUser())的场景下,login()是getUser()的前置条件。Promise.all()用于处理多个Promise实例,当所有实例都resolve时,它才resolve;若有任何一个reject,则它立即reject。链式调用则能确保异步操作按顺序执行,确保getUser()在login()成功后才执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中需要先获取用户的ID,然后再根据用户ID去获取用户的详细信息。这里获取用户ID login()和获取用户信息getUser()都是调用接口的异步请求。在获取用户的详细信息之前,需要先获得用户ID。也就是说getUser依赖于login的状态。

一:promise.all()  

Promise.all([axios1,axios2,axios3]) ,用于将多个Promise实例,包装成一个新的Promise实例。接收的参数是一个数组,axios1axios2axios3都是Promise对象。此时Promise.all的状态取决于它的参数。

分两种情况:

  • axios1axios2axios3的状态都是resolve的时候,Promise.all的状态才会变成resolve;
  • 只要axios1axios2axios3中有一个的状态为reject,那么Promise.all的状态就会变成reject;

所以我们可以用Promise.all()来解决多个异步依赖调用。

function getUserPromise(promiseX, promiseY){
 return Promise.all([promiseX, promiseY])
 .then(values =>
 // 返回的values由 promiseX 与 promiseY返回的值所构成的数组。
  values
 )
}
function login(){
 l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值