评论

【教程】关于uniapp中对axios的封装

对于axios请求做的其他操作,例如拦截、过滤

对于axios请求做的其他操作,例如拦截、过滤等等·····

下图中baseUri自己定义所需的baseURL即可

import axios from "axios";
import {baseUri} from "./api.js"


const service = axios.create({
	baseURL: baseUri,
	timeout: 600000,
});

axios.defaults.retry = 4;
axios.defaults.retryDelay = 4000;
axios.defaults.withCredentials = true;


function startLoading() { //使用Element loading-start 方法
	console.log(baseUri);
	uni.showLoading({
		title: "加载中..."
	});
}

function endLoading() { //使用Element loading-close 方法
	uni.hideLoading();
}

let needLoadingRequestCount = 0

export function showFullScreenLoading() {
	if (needLoadingRequestCount === 0) {
		startLoading()
	}
	needLoadingRequestCount++
}

export function tryHideFullScreenLoading() {
	if (needLoadingRequestCount <= 0)
		return needLoadingRequestCount--;
	if (needLoadingRequestCount === 0) {
		endLoading()
	}
}

service.interceptors.request.use((config) => {
	showFullScreenLoading();
	return config;
}, error => {
	tryHideFullScreenLoading();
	return Promise.reject(error)
});

// axios 请求处理超时处理
service.interceptors.response.use(
	function(response) {
		tryHideFullScreenLoading();
		return response;
	}
);

export default service;

最后一次编辑于  2021-11-27  
点赞 2
收藏
评论

4 个评论

  • d文意
    d文意
    2021-11-30

    可以

    2021-11-30
    赞同 1
    回复 1
    • Smooth
      Smooth
      2021-11-30
      谢谢
      2021-11-30
      1
      回复
  • wyf
    wyf
    2022-12-05

    虽然还没看懂,还是要努力学习

    2022-12-05
    赞同
    回复
  • chenmoumou
    chenmoumou
    2021-11-30

    默默的点赞路过

    2021-11-30
    赞同
    回复
  • 谋谋谋
    谋谋谋
    2021-11-27

    哇哦

    2021-11-27
    赞同
    回复 1
    • Smooth
      Smooth
      2021-11-30
      啊这
      2021-11-30
      1
      回复
登录 后发表内容