欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

axios取消上传

程序员文章站 2022-03-21 07:52:30
在项目中使用了axios上传大文件时会有取消的操作这个时候就需要中断掉xml请求这里记录一下在axios中的实现方法import axios from "axios";//第一次初始化var CancelToken = axios.CancelTokenvar source = CancelToken.source()var AxiosFile = axios.create({ baseURL: fileUrl, cancelToken: source.token});...

在项目中使用了axios
上传大文件时会有取消的操作
这个时候就需要中断掉xml请求

这里记录一下在axios中的实现方法

import axios from "axios";

//第一次初始化
var CancelToken = axios.CancelToken
var source = CancelToken.source()

var AxiosFile = axios.create({
    baseURL: fileUrl,
    cancelToken: source.token
});

//正常情况下对发送和接收数据的拦截器处理
AxiosFile.interceptors.request.use(
	config => {
        //todo
        return config;
    },
    error => {
        //todo
        return Promise.reject(error);
    }
)
AxiosFile.interceptors.response.use(
    response => {
       //todo
       return response.data
    },
    error => {
        //todo
        return Promise.reject(error)
    }
);


/*
这里需要重点写一下,因为在使用过程中 canceltoken 使用一次后这个axios 好像是被销毁了,之后就不能正常发起请求
因此在调用了 source.cancel() 方法之后,又重新初始化了axios 实例。
*/ 

const cancleUpload = ()=>{
    source.cancel();
    
    //此处向下为重新创建实例
    CancelToken = axios.CancelToken
    source = CancelToken.source()
    
    AxiosFile = axios.create({
        baseURL: fileUrl,
        cancelToken: source.token
    });
    
	AxiosFile.interceptors.request.use(
		config => {
	        //todo
	        return config;
	    },
	    error => {
	        //todo
	        return Promise.reject(error);
	    }
	)
	AxiosFile.interceptors.response.use(
	    response => {
	       //todo
	       return response.data
	    },
	    error => {
	        //todo
	        return Promise.reject(error)
	    }
	);
    
}

export {
    cancleUpload,
}

本文地址:https://blog.csdn.net/weixin_43590947/article/details/107159076