您好,欢迎来到刀刀网。
搜索
您的当前位置:首页vue3中怎么中断正在请求的接口,取消请求

vue3中怎么中断正在请求的接口,取消请求

来源:刀刀网

1.需求背景

需要做一个上传图片,识别图片内容的功能。因为识别时间过长,需要增加一个中断识别的按钮。

2.效果

3.实现代码

// 识别
async function fileTypeChange(item,formData) {
    item.cancelTokenSource = axios.CancelToken.source(); // 给每张图片对象数据添加一个cancelTokenSource,创建一个取消令牌源
    await axios.post(danjuApi.baseUrl + '/osgi/getResult', formData, {
      cancelToken: item.cancelTokenSource.token // cancelToken这个是固定属性,取值方式".token"固定方式,这里相当于再给每个请求添加唯一标识
    }).then(res => {
      console.log('响应数据:', res.data);
    }).catch(error => {
      ElMessage.error(error.message)
    }).finally(() => {
      item.cancelTokenSource = null; // 请求完后清空取消令牌源
    })
}

// 取消识别
const cancelRequest = (item) => { // item是每张图片对象数据,识别时已经存储了取消令牌源
  if (item.cancelTokenSource) {
    item.cancelTokenSource.cancel('用户取消识别'); // 通过cancel()方法就可以取消请求了
  }
};

4.说明

get和post请求方式都是在第三个参数位置添加{cancelToken: item.cancelTokenSource.token},取消时调用cancel()方法就行了;重点在于创建一个取消令牌源,给请求点添加取消标识

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务