vue 接口中断请求AbortController

文章介绍了两种在JavaScript中中断HTTP请求的方法:一是使用AbortController,通过实例化AbortController并在组件卸载时调用abort方法来取消请求;二是利用axios库的CancelToken,可以通过传递executor函数或者使用CancelToken.source()来创建和取消请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口中断请求两种方法

第一种:AbortController

接口
export function getPeopleList(data:any,signal:any){
  return request({
    url: '/entityQuery/personGroup',
    method: 'post',
    data,
    signal:signal.signal
  })
}
//发送请求及定义变量
const abortController = new AbortController()
 getdetail(params1.value, abortController).then(res => {
 })
//组件销毁时中断
  onUnmounted(() => {
      abortController.abort()
    });

第二种:CancelToken
(1)方法1 传递executor函数到CancelToken的够造函数来创建cancel token

import axios from 'axios'
const cancelToken = axios.CancelToken
export function uploadFileNew(params,that) {
  let url = "url";
  return request({
    url: url,
    method: 'post',
    cancelToken: new cancelToken(function executor(c) {
      that.cancel=c
    }),    
  })
}
//接口请求
await API.uploadFileNew(params, this )
//在需要取消请求的地方使用
 this.cancel()

(2)方法2 可以利用CancelToken工厂函数创建cancel token

const CancelToken = axios.CancelToken;
const source = CancelToken.source();
// get 方法使用案例
axios.get('user/12345', {
  cancelToken: source.token
}).catch(function(thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message)
  } else {
    // TODO: handle error
  }
})
// post 使用案例
axios.post('/user/12345', {
  name: 'name what'
}, {
  cancelToken: source.token
})
 
// 执行取消请求操作
source.cancel(‘请求已取消’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值