当前位置:   article > 正文

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

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

1,封装axios实例 request.js

  1. const axios = require('axios');
  2. // 创建一个axios实例
  3. const service = axios.create({
  4. baseURL: "https://ip:port",
  5. timeout: 60000
  6. });
  7. export default service

2,封装请求 api.js

  1. import service from 'request'
  2. import axios from "axios";
  3. export const canCancelApi = (data, cancel) => {
  4. return service({
  5. url: '/api/test',
  6. method: 'post',
  7. data,
  8. cancelToken: new axios.CancelToken((c) => {
  9. cancel && cancel(c)
  10. })
  11. })
  12. }

3,调用api

  1. import {onBeforeUnmount} from 'vue'
  2. import {canCancelApi} from "api";
  3. const apiCancel = null
  4. // 通过回调接收caccel方法
  5. canCancelApi(params, (cancle) => {
  6. apiCancel = cancle
  7. }).then(res => {})
  8. onBeforeUnmount(() => {
  9. if(apiCancel){
  10. // 关闭页面时如果请求存在则取消请求
  11. apiCancel('custom-cancel')
  12. }
  13. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/1022116
推荐阅读
相关标签
  

闽ICP备14008679号