一开始在main.js中定义一个变量设置为当前页面发送接口的数量

var needLoadingRequestCount = 0 //当前正在请求的数量

 

接下来在请求拦截中写(我是写在vue-resource中 axios同理)

Vue.http.interceptors.push((request, next) => {  

    //这里是请求发起之前做的预处理

    needLoadingRequestCount++  //每次发送一个请求就进行++

    Indicator.open('加载中...');   //这里是mint-ui的loading

  next((response) => { //这里是接口响应之后传给then之前对response的逻辑处理和修改

        needLoadingRequestCount--  //调用完一个接口就进行-1

        if(needLoadingRequestCount == 0){  //当接口都调用完时

            setTimeout(function(){

                Indicator.close();  //关闭loading
          
              },100)
     
           }
   
     })

});

 

Logo

前往低代码交流专区

更多推荐