Vue接口请求取消(AbortController 和 CancelToken)

先上Axios官网文档:https://www.axios-http.cn/docs/cancellation

使用场景:页面切换时,取消掉未调用完成的接口;流程中主动取消某些接口。

目前有两种取消接口请求的方式:

  • AbortController
  • CancelToken
这里只写一种实际使用方式:
  • 接口:
// 接口文件用了项目中封装过的请求函数,主要关注关键代码。

import request from '@/utils/request'
import { dataToFormData } from '@/utils'
import axios from 'axios'
const CancelToken = axios.CancelToken

// 额外传入一个 that
export function getList(data, that) {
  return request({
    url: '/test/list',
    method: 'post',
    data: dataToFormData(data),
    // 关键代码 cancelToken
    cancelToken: new CancelToken((c) => {
      that.cancel = c
    })
  })
}
  • 使用:
// 调用接口时,除了本身的传参,额外传一个this
getList(this.listQuery, this)
	.then((res) => {})
	.catch((err) => {})

// 在需要取消的位置执行以下代码即可
this.cancel('请求取消')
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值