当前位置: 首页 > 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.yayakq.cn/news/463354/

相关文章:

  • 备案网站ip地址wordpress 保留 index.php
  • 怎样免费做网站搜狐快站官网
  • seo网站排名软件威海公司注册
  • 现在开网站做微商赚钱吗公司网站优化哪家好
  • 网站建设订制版合同模板东台做网站找哪家好
  • 长沙河西网站建设常用cms系统
  • 一个公司做2个产品网站怎么做的软件外包产业
  • 企业网站建设ppt模板晋中市科技馆网站建设
  • 物流网站 源码wordpress拼图
  • 跑步机 东莞网站建设投资者网站建设
  • 鄢陵网站建设初中生怎么提升学历
  • 貴阳建设银行网站WordPress主题保存
  • 二手网站开发文档模板西安网站建设小程序开发
  • 中国贸易网站有哪些自适应网站建设多少钱
  • 上蔡专业网站建设网上超市有哪些平台
  • 南京做网站优化河北建设工程信息网联系电话
  • 自助网站建设怎么建设年轻人最喜欢的网页
  • 京东商城网站怎么做的自适应国产cms软件有哪些
  • 网站门户建设流程国内永久免费crm系统网站推荐
  • 网站图片尺寸网站基本模板
  • 山西集团网站建设wordpress feed源
  • 网站后台密码文件做自适应网站制作
  • 做暧动漫视频在线观看网站海事网站服务平台
  • wordpress网站防护yangdesign工业设计公司
  • 中国水土保持与生态环境建设网站学校网站建立
  • 中国建设银行福清分行网站湘潭建设网站
  • 网站开发语言十大家居家装网站哪个好
  • 网站模版下载深圳汇鑫科技网站建设
  • 用ps网站首页怎么做软件工程项目管理
  • 网站做系统叫什么软件吗WordPress搜索结果文字修改