import instance from "./axios";
let controllerList = [];
const request = ({ method = "get", url, data, config }) => {
method = method.toLowerCase();
controllerList.forEach((item) => {
if (item.url === url) {
item.conT.abort();
controllerList = controllerList.filter((item) => item.url !== url);
}
});
let controller = new AbortController();
controllerList.push({ url, conT: controller });
config = { ...config, signal: controller.signal };
if (method === "post") {
return instance.post(url, data, config).then((res) => {
controllerList = controllerList.filter((item) => item.url !== url);
return res;
});
} else if (method === "get") {
return instance
.get(url, {
params: data,
...config,
})
.then((res) => {
controllerList = controllerList.filter((item) => item.url !== url);
return res;
});
};
export default request;