这个项目是在微信中基于微信的静默登录,也就是不需要多余用户登录填写,只需要跳转重新加载一遍页面就完成登录了,之前是用拦截器做的检测到未登录的代码就直接跳转实现自动登录再返回原来页面,但是同一个页面该发起的请求还是同时发起了。现在我想实现的是//同时发起5个请求axios1()//假如第一个请求拿到数据检测到未登录的话就取消掉后边的几个请求axios2()axios3()axios4()axios5()有什么比较好的思路或者实现方式么?
10 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
这样行吗?
axios1().then(res=>{
if(!res.login){
//go login
}else{
axios2()
axios3()
axios4()
axios5()
}
})
30秒到达战场
TA贡献1828条经验 获得超6个赞
首先包装一下每一个 promise ,即使失败也至为 resolve 状态,然后用 Promise.race 确保一个完成后记录下 index 或者 id,然后重新发这个 array 里面的其他请求。
request 的 abort 不知道兼容性如何,这种方法是所有请求都必须发完全,并且除了成功的那个其他都会发两遍。
www说
TA贡献1775条经验 获得超8个赞
首先,你要复写 axios 方法(不推荐)或者自己封装一个方面(推荐),然后:
接到任何请求,都直接加入队列
判断是否已登录,如是,则正常发送请求
如果不是,则跳转到登录页登录
登录完成后,检查队列,如果有请求,就发送
添加回答
举报
0/150
提交
取消