码迷,mamicode.com
首页 > Web开发 > 详细

封装 loading.js 文件 全局loading

时间:2020-05-20 12:33:35      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:文件   star   bsp   ret   arp   art   rgb   拦截器   rom   

先写一个 loading.js 文件:

import { Loading } from ‘element-ui‘;

let loadingCount = 0;
let loading;

const startLoading = () => {
  loading = Loading.service({
    lock: true,
    text: ‘加载中……‘,
    background: ‘rgba(0, 0, 0, 0.7)‘
  });
};

const endLoading = () => {
  loading.close();
};

export const showLoading = () => {
  if (loadingCount === 0) {
    startLoading();
  }
  loadingCount += 1;
};

export const hideLoading = () => {
  if (loadingCount <= 0) {
    return;
  }
  loadingCount -= 1;
  if (loadingCount === 0) {
    endLoading();
  }
};

再在 axios 的 interceptor 中调用:

import { showLoading, hideLoading } from ‘./loading‘;

/* 请求拦截器(请求之前的操作) */
ajax.interceptors.request.use((req) => {
  showLoading();
  return req;
}, err => Promise.reject(err));

/* 请求之后的操作 */
ajax.interceptors.response.use((res) => {
  hideLoading();

  return res;

  return Promise.reject(res);
}, (err) => {
  hideLoading();
  return Promise.reject(err);
});

  

 

 

封装 loading.js 文件 全局loading

标签:文件   star   bsp   ret   arp   art   rgb   拦截器   rom   

原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/12922713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!