Vue项目中Axios取消请求功能实现

1,封装axios实例 request.js

javascript 复制代码
const axios = require('axios');
 
// 创建一个axios实例
const service = axios.create({
  baseURL: "https://ip:port",
  timeout: 60000
});
 
export default service

2,封装请求 api.js

javascript 复制代码
import service from 'request'
import axios from "axios";

export const canCancelApi = (data, cancel) => {
    return service({
        url: '/api/test',
        method: 'post',
        data,
        cancelToken: new axios.CancelToken((c) => {
            cancel && cancel(c)
        })
    })
}

3,调用api

javascript 复制代码
import {onBeforeUnmount} from 'vue'
import {canCancelApi} from "api";


const apiCancel = null
// 通过回调接收caccel方法
canCancelApi(params, (cancle) => {
    apiCancel = cancle
  }).then(res => {})

onBeforeUnmount(() => {
  if(apiCancel){
    // 关闭页面时如果请求存在则取消请求
    apiCancel('custom-cancel')
  }
}
相关推荐
烛阴4 分钟前
代码的“病历本”:深入解读C#常见异常
前端·c#
froginwe1114 分钟前
NumPy 数组属性
开发语言
吃好喝好玩好睡好20 分钟前
Flutter/Electron应用无缝适配OpenHarmony:全链路迁移方案与实战
javascript·flutter·electron
ULTRA??20 分钟前
moonbit关于模式匹配中的变量绑定
开发语言·c++·人工智能
FY_201825 分钟前
Stable Baselines3中调度函数转换器get_schedule_fn 函数
开发语言·人工智能·python·算法
IT_陈寒29 分钟前
Python 3.12 新特性实战:10个提升开发效率的隐藏技巧大揭秘
前端·人工智能·后端
JienDa34 分钟前
JienDa聊PHP:乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O系统开发
开发语言·php
黛色正浓35 分钟前
【React】极客园案例实践-文章列表模块
javascript·react.js·ecmascript
霸王大陆36 分钟前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-1
android·开发语言·php
老华带你飞44 分钟前
旅游|基于Java旅游信息推荐系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·旅游