非常简单的清除axios请求(vue,react通用)

1、添加js文件
实现添加与删除接口的功能。


import axios from 'axios'class CancelToken {// 声明一个 Map 用于存储每个请求的标识 和 取消函数static pending = new Map()// 白名单, 写入接口名称static whiteRequest = []/*** 得到该格式的url* @param {AxiosRequestConfig} config * @returns */static getUrl(config) {return [config.method, config.url].join('&')}/*** 添加请求* @param {AxiosRequestConfig} config*/static addPending(config) {const url = this.getUrl(config)config.cancelToken = new axios.CancelToken(cancel => {if (!this.pending.has(url)) { // 如果 pending 中不存在当前请求,则添加进去this.pending.set(url, cancel)}})}/*** 移除请求* @param {AxiosRequestConfig} config*/static removePending(config) {const url = this.getUrl(config)const method = url.split('&')[1]if (this.pending.has(url) && !this.whiteRequest.includes(method)) { // 如果在 pending 中存在当前请求标识,需要取消当前请求,并且移除const cancel = this.pending.get(url)cancel(url)this.pending.delete(url)}}/*** 清空 pending 中的请求(在路由跳转时调用)*/static clearPending() {for (const [url, cancel] of this.pending) {cancel(url)}this.pending.clear()}
}export default CancelToken

2、实现离开页面清除请求(vue版)
利用路由的生命周期

router.beforeEach((to, from, next) => {// 路由跳转要清除之前所有的请求缓存CancelToken.clearPending()next()
})

3、当请求重复时,清除上一次的请求。
利用axios 的拦截函数

import axios from 'axios'
import CancelToken from './cancalToken';
const request = axios.create({withCredentials: false
})request.interceptors.request.use(config => {// 请求开始前,检查一下是否已经有该请求了,有则取消掉该请求CancelToken.removePending(config)// 把当前请求添加进去CancelToken.addPending(config)return config},error => {console.log('error', error)return Promise.reject(new Error(error).message)}
)request.interceptors.response.use(response => {// 接口响应之后把这次请求清除CancelToken.removePending(response.config)console.log('.....', response)return response.data},error => {console.log('error', error)return Promise.reject(new Error(error).message)}
)export default request

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云发布企业云原生IT成本治理方案:五大能力加速企业 FinOps 进程

简介:阿里云企业云原生 IT 成本治理方案助力企业落地企业 IT 成本治理的理念、工具与流程,让企业在云原生化的过程中可以数字化地实现企业 IT 成本管理与优化,成为 FinOps 领域的践行者与领先者。 作者:莫源 云原生技术与降本增…

阿里云数字化安全生产平台 DPS V1.0 正式发布

简介:数字化安全生产平台则帮助客户促进业务与 IT 的全面协同,从业务集中监控、业务流程管理、应急指挥响应等多维度来帮助客户建立完善专业的业务连续性保障体系。 作者:银桑、比扬 阿里云创立于 2009 年,是全球领先的云计算及…

项目实用功能-全局loading动画

1.为设么要使用全局loading 调用的每一个接口都要绑定一个loading真的很烦。 2.实现这个需要考虑哪些要素 首先全局的loading需要一个调用任何接口都要执行的地方打开,那就肯定是axios的前置拦截函数了。loading有加载整个页面的,也有加载部分页面的&…

玩转小程序压测

简介:小程序是移动互联网时代非常重要的流量入口。为了避免因系统性能瓶颈导致用户在使用过程中出现白屏、异常报错等问题影响用户体验,小程序在新功能上线前需要做好压力测试,评估出系统的承载能力,并以压测结果配置限流。让系统…

好的每日站会,应该这么开 | 敏捷开发落地指南

简介:高效落地敏捷开发,先从这3个关键活动着手。在敏捷迭代中,虽然迭代周期比较短,但依然需要对迭代过程进行有效跟进。如果在输入、过程、输出环节,没有要求,每日站会(迭代跟进)将会…

EasyNLP开源|中文NLP+大模型落地,EasyNLP is all you need

简介:EasyNLP背后的技术框架如何设计?未来有哪些规划?今天一起来深入了解。 作者 | 临在、岑鸣、熊兮 来源 | 阿里开发者公众号 一 导读 随着BERT、Megatron、GPT-3等预训练模型在NLP领域取得瞩目的成果,越来越多团队投身到超大…

虚拟列表的实现思路(附带react代码)

虚拟列表实现思路 —— 代码链接 <div class"滚动容器"><div class"撑起列表正常高度"></div><div class"列表容器"><div class"列表项"></div></div> </div>1.【列表项】的高度确定…

内容社区行业搜索最佳实践

简介&#xff1a;社区内容通常包括UGC和PGC。由于关键词和内容多样性丰富、用词规范程度参差不齐&#xff0c;搜索引擎需要对关键词和内容进行智能语义分析&#xff0c;识别出用户真正的查询意图&#xff0c;找到最全面最相关的结果满足用户需求。本文将详细介绍如何通过“开放…

手把手,带你用数据做好迭代复盘改进 | 敏捷开发落地指南

简介&#xff1a;高效落地敏捷开发&#xff0c;先从这3个关键活动着手。带你用数据做好迭代复盘改进 &#xff0c;数据说话&#xff0c;借助云效项目协作Projex 高效开展迭代复盘高效落地敏捷开发。 摘要&#xff1a;高效落地敏捷开发&#xff0c;先从这3个关键活动着手&#…

记一次网络相关的技术问题答疑

大家好&#xff0c;我是飞哥&#xff01;前段时间飞哥参加了一期 OSChina 官方举办的「高手问答」栏目。在这个栏目里&#xff0c;我和 OSChina 的网友们以《深入理解 Linux 网络》为主题&#xff0c;对大家日常所关心的一些问题展开了一些技术探讨。今天我把这个活动中探讨的内…

Hexo博客框架—轻量、一令部署

简介&#xff1a;Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown&#xff08;或其他渲染引擎&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。Hexo支持Github Flavored Markdown的所有功能, 甚至可以整合Octopress的大多数…

被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

简介&#xff1a;无可讳言&#xff0c;对于混沌工程的价值&#xff0c;目前在业内还没有一个明确的度量标准&#xff0c;但是可以通过简单的例子来有效佐证。据中亭介绍&#xff0c;一方面可以先选定一个场景&#xff0c;从结果上看&#xff0c;混沌工程可以保证场景不劣化&…

同为博客,不同风格 ——Hexo另类搭建

简介&#xff1a;通过阿里云云开发平台快速由Hexo创建赛博朋克风格的博客。 一 、通过云开发平台快速创建初始化应用 1.创建相关应用模版请参考链接&#xff1a;Hexo博客框架—轻量、一令部署 2.完成创建后就可以在github中查看到新增的Hexo仓库 二 、 本地编写《赛博朋克风…

即学即会 Serverless | 初识 Serverless

简介&#xff1a;Serverless 架构被越来越多的业务所采纳&#xff0c;成为其技术选型&#xff0c;大多数开发者已经跨越对 Serverless 概念了解&#xff0c;切实向落地实践出发。本文带大家一探究竟&#xff0c;为什么说 Serverless 可以帮助开发者聚焦核心业务价值&#xff0c…

宜搭小技巧|巧用审批按钮,流程随心流转

简介&#xff1a;一键启用流程退回&#xff0c;再也不用担心“一错回到提交前”&#xff01; 今天&#xff0c;宜小搭提交了产品采购申请单&#xff0c;却因某项产品选错分类被领导拒绝&#xff0c;宜小搭只能重新填写再提交&#xff0c;这样做既麻烦也影响工作效率。 流程已…

阿里云将投入70亿元建国际生态、增设6大海外服务中心

9月22日消息&#xff0c;阿里云在泰国举办的国际云峰会上宣布将继续加快海外市场布局&#xff0c;未来三年投入70亿元建设国际本地化生态&#xff0c;并在海外增设6个服务中心&#xff0c;分别位于波尔图、墨西哥城、吉隆坡、迪拜等地。近年来&#xff0c;阿里云在海外市场获得…

开源|优酷动态模板研发体系为分发提效30%

简介&#xff1a;动态模板技术方案将客户端研发链路实现了串联&#xff0c;通过完备的工具化支撑体系&#xff0c;让开发者可以高效完成组件由原始设计稿到可运行代码的最短通路&#xff0c;本文将对研发体系中涉及到的核心模块就行介绍&#xff0c;希望对技术社区及广大开发者…

比心云平台基于阿里云容器服务 ACK 的弹性架构实践

简介&#xff1a;本文主要探讨比心云平台如何利用阿里云容器服务 ACK&#xff0c;来构建应用弹性架构&#xff0c;进一步优化计算成本。 作者&#xff1a;韩韬&#xff5c;比心技术 前言 应用容器化改造后&#xff0c;不可避免地会面临这样一个问题&#xff1a;Kubernetes 集…

阿里云EMAS旗下低代码平台Mobi开放定向内测

简介&#xff1a;【低代码深度共创】EMAS旗下低代码平台Mobi开放定向内测名额&#xff0c;限时限量&#xff0c;参与调研先到先得&#xff01; Mobi是面向全端&#xff08;Web、Native App、H5、全平台小程序等&#xff09;场景&#xff0c;模型驱动的低代码开发平台&#xff…

程序员莫名收到谷歌转账170万元,直言:一个月没敢花

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09;近日&#xff0c;Google 公司发生一起乌龙事件&#xff0c; 意外地给一位博客和安全工程师转账近25万美元&#xff08;约合人民币174万元&#xff09;&#xff0c;当事人表示等待将近一个月…