Axios使用CancelToken取消请求

153 阅读1分钟
let cancelRequest; // 用于保存取消函数 

function sendRequest() { 
    // 如果存在之前的取消函数,则调用取消函数 
    if (cancelRequest) { 
        cancelRequest(); 
    } 
    
    axios({ 
        method: 'GET', 
        url: 'http://47.98.128:3000/subjects/getSubjects', 
        cancelToken: new axios.CancelToken((c) => { 
            cancelRequest = c; // 保存取消函数 
        }) 
    }).then(response => { 
        console.log(response); 
        cancelRequest = null; // 请求完成后将取消函数置为null 
    }); 
} 

// 调用sendRequest函数发送请求 
sendRequest(); 

// 在需要取消请求的地方调用cancelRequest函数 
if (typeof cancelRequest === 'function') { 
    cancelRequest(); // 取消之前的请求 
}