关于axios的二次封装, 在请求时利用拦截器弹出全局loading,在请求结束后关闭loading, 但发现些问题,在一个页面有多个请求的情况下,尤其有几个请求比较慢的情况下,第一个请求结束后loading就会先行关闭,造成了一些显示不友好, 试问有什么好的方案去解决吗, (有考虑过promise.all,但希望有更佳)
关于axios的二次封装, 在请求时利用拦截器弹出全局loading,在请求结束后关闭loading, 但发现些问题,在一个页面有多个请求的情况下,尤其有几个请求比较慢的情况下,第一个请求结束后loading就会先行关闭,造成了一些显示不友好, 试问有什么好的方案去解决吗, (有考虑过promise.all,但希望有更佳)
初始化一个数组。
每创建一个请求就把loading 的实例 push 进数组。
每完成一个请求就从 数组中 pop 出一个实例调用关闭 loading 方法。
或者用一个计数器 每发起一个请求就 +1,完成一个请求就 -1 ,每个请求完成后判断计数器是否剩余 0 如果是就关闭loading
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
最后在http.js里引了vuex ,然后全局loading由vuex里的变量来控制, 大于1时弹出loading, 为0时则关闭loading, 每次请求签在拦截器内 + 1 ,响应后-1。 在路由守卫每次进下个路由前重置成0.