项目方案:axios 请求中断封装方案
一、背景介绍
在前端开发中,经常会遇到需要发送请求的情况,而有时候我们希望能够中断请求。axios 是一个常用的异步请求库,本文将介绍如何封装 axios 来实现请求中断的功能。
二、方案介绍
1. 封装 axios
// axios.js
import axios from 'axios';
const CancelToken = axios.CancelToken;
let cancel;
const request = axios.create({
baseURL: '
});
request.interceptors.request.use(
config => {
config.cancelToken = new CancelToken(function executor(c) {
cancel = c;
});
return config;
},
error => {
return Promise.reject(error);
}
);
export { request, cancel };
2. 使用中断请求
// app.js
import { request, cancel } from './axios';
// 发送请求
const fetchData = async () => {
try {
const response = await request.get('/posts');
console.log(response.data);
} catch (error) {
console.log(error);
}
};
// 中断请求
const cancelRequest = () => {
if (cancel) {
cancel('Request cancelled');
}
};
// 调用函数
fetchData();
// 中断请求
cancelRequest();
三、关系图
erDiagram
CUSTOMER ||--o| ORDER : places
ORDER ||--| PRODUCT : contains
四、类图
classDiagram
class Request {
+ request()
- cancel()
}
class App {
+ fetchData()
+ cancelRequest()
}
Request <|-- App
五、总结
通过以上的方案,我们已经实现了对 axios 请求的中断功能的封装。在实际项目中,可以根据具体需求做进一步封装和优化,以提高代码的可维护性和可复用性。希望本文对大家有所帮助。