axios的二次封装里,有什么好方法能确保在当前页面的所有请求都结束后关闭loading
关于axios的二次封装, 在请求时利用拦截器弹出全局loading,在请求结束后关闭loading, 但发现些问题,在一个页面有多个请求的情况下,尤其有几个请求比较慢的情况下,第一个请求结束后loading就会先行关闭,造成了一些显示不友好, 试问有什么好的方案去解决吗, (有考虑过promise.all,但希望有更佳)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
最后在http.js里引了vuex ,然后全局loading由vuex里的变量来控制, 大于1时弹出loading, 为0时则关闭loading, 每次请求签在拦截器内 + 1 ,响应后-1。 在路由守卫每次进下个路由前重置成0.
定义一个计数器
全局记录请求个数 在catch中判断 如果还有请求未完成则不关闭loading 如果没有则关闭loading
其实还是用promise.all最好
定义每个接口对应的loading的target,然后加一个每个loading的计数器,计数器为0才取消,个人想法....
初始化一个数组。
每创建一个请求就把loading 的实例 push 进数组。
每完成一个请求就从 数组中 pop 出一个实例调用关闭 loading 方法。
或者用一个计数器 每发起一个请求就 +1,完成一个请求就 -1 ,每个请求完成后判断计数器是否剩余 0 如果是就关闭loading