当前位置: 首页 > news >正文

龙岗网站制作设计软文外链代发

龙岗网站制作设计,软文外链代发,汽车之家手机版网页,栾城住房和城乡建设局网站前言 最近开发过程中,总是遇到想把正在请求的axios接口取消,这种情况有很多应用场景,举几个例子: 弹窗中接口请求返回图片,用于前端展示,接口还没返回数据,此时关闭弹窗,需要中断接…

前言

最近开发过程中,总是遇到想把正在请求的axios接口取消,这种情况有很多应用场景,举几个例子:

  1. 弹窗中接口请求返回图片,用于前端展示,接口还没返回数据,此时关闭弹窗,需要中断接口请求
  2. tab标签页根据后端返回数据,依次渲染,频繁切换标签,需要中断接口请求
  3. for循环中请求接口,遇到跳出循环情况,也需要中断接口请求
  4. 跳转路由,离开页面时,可能也需要中断接口请求

下面就是根据以上问题,找到的解决方案

正文

因为axios不同版本取消请求是不同的,目前最新的 axios 的取消请求api,推荐使用 AbortController ,旧版本的 CancelToken 在 v0.22.0 后弃用,截止到此片文章发表,npm上的axios版本号已经更新到v1.5.1,但是相信有一些项目的版本还是v0.x.x的,所以下面分别介绍两种取消方式,大家根据自己项目axios版本号,自行查看

在这里插入图片描述

v0.22.0 CancelToken

  1. get请求
<el-button type="primary" @click="sendGet()">发送get请求</el-button>
<el-button type="danger" @click="cancel()">取消请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let source:any = null;
const sendGet = ()=>{//可以理解为给定每个接口一个标识source = axios.CancelToken.source();axios.get('请求url',{cancelToken: source.token}).then(res => {console.log("get请求",res)}).catch(err => {if (axios.isCancel(err)) {console.log('请求取消', err);} else {console.log('其他错误', err)}});
}const cancel = ()=>{source && source.cancel('手动调用 source.cancel方法,手动取消请求');
}

在这里插入图片描述

  1. post请求
<el-button type="success" @click="sendPost()">发送post请求</el-button>
<el-button type="danger" @click="cancel()">取消请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let source:any = null;
const sendPost = ()=>{source = axios.CancelToken.source();axios.post("请求url",{},//传参,没有也必须加上{}{cancelToken: source.token}).then((res) => {console.log("post请求",res)}).catch(err => {if (axios.isCancel(err)) {console.log('请求取消', err);} else {console.log('其他错误', err)}})
}const cancel = ()=>{source && source.cancel('手动调用 source.cancel方法,手动取消请求');
}

在这里插入图片描述

v1.5.1 AbortController

使用fetch() 是一个全局方法,它的请求是基于 Promise 的
method - 请求方法,默认GET
signal - 用于取消 fetch

<el-button type="primary" @click="sendNewGet()">发送get请求</el-button>
<el-button type="danger" @click="cancelController()">取消新版请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let controller:any = null;const sendNewGet = ()=>{controller = new AbortController();   // 新建一个AbortController实例fetch('请求url',{signal: controller.signal    // signal是AbortController实例的属性}).then(res => {console.log("新版get请求",res)//处理返回数据res.json().then(res1 => {console.log(res1)})}).catch(err => {console.log(err)});
}const cancelController = ()=>{controller && controller.abort();//调用abort方法
}
http://www.zhongyajixie.com/news/27552.html

相关文章:

  • 内网网站建设方面政策如何成为app推广代理
  • 定制网站建设报价单百度指数搜索
  • 黄骅市网站建设公司头条指数
  • 泰格豪雅手表官方网站今日新闻国际最新消息
  • 网站后台是做什么的重庆百度seo排名优化软件
  • 学院二级网站建设方案模板营销型企业网站制作
  • 免费追剧网站大全结构优化
  • 最大的地方门户网站源码厦门关键词排名优化
  • 重庆网站建设沛宣网络购买模板建站
  • 网站建设 中企动力广州seo网站优化培训
  • 手机网站 文件上传推广平台
  • 个人网站相册怎么做嵌入式培训班一般多少钱
  • 扒下来的网站怎么做修改建网站的公司排名
  • 客户网站建设完成后需要什么杭州网络推广有限公司
  • 智能网站建设平台seo推广技术
  • php网站换服务器软文网官网
  • 怎么做动态网站视频短片seo网站怎么优化
  • 不想花钱做网站推广百度客服在哪里找
  • 滕州网站制作哪家好网络营销做的比较好的企业
  • 个人网站首页界面总排行榜总点击榜总收藏榜
  • 专注宜昌网站建设推广普通话手抄报模板
  • wordpress文章编辑插件关键词优化师
  • 搭建网站的价格深圳网络推广公司哪家好
  • 团购网站 方案优化外包哪里好
  • 做网站asp网络广告类型
  • 优秀企业网站设计制作大专网络营销专业好不好
  • 网站里面的按钮链接怎么做怎么自己创建网页
  • 佛山网站建设在哪找厦门关键词排名优化
  • 佛山专业的做网站淘宝网店运营
  • 建行app官方下载seo实战培训视频