取消网络请求

ops/2024/12/14 16:57:49/

1. 使用 fetch 的取消请求

fetch 使用 AbortController 提供取消请求的功能。

示例代码
javascript">let currentController = null;function fetchWithCancel(url) {// 如果有上一个请求,则取消它if (currentController) {currentController.abort();}// 创建新的 AbortControllercurrentController = new AbortController();const signal = currentController.signal;fetch(url, { signal }).then(response => response.json()).then(data => {console.log("fetch 数据:", data);}).catch(error => {if (error.name === "AbortError") {console.log("fetch 请求被取消");} else {console.error("fetch 请求出错:", error);}});
}// 示例调用
fetchWithCancel("https://api.example.com/data");
fetchWithCancel("https://api.example.com/otherdata"); // 取消第一个请求

2. 使用 axios 的取消请求

axios 使用 CancelToken 提供取消请求的功能。CancelToken 是基于 Promise 的实现。

示例代码
javascript">let currentCancelToken = null;function axiosWithCancel(url) {// 如果有上一个请求,则取消它if (currentCancelToken) {currentCancelToken.cancel("axios 请求被取消");}// 创建新的 CancelTokencurrentCancelToken = axios.CancelToken.source();axios.get(url, {cancelToken: currentCancelToken.token,}).then(response => {console.log("axios 数据:", response.data);}).catch(error => {if (axios.isCancel(error)) {console.log(error.message); // 请求被取消} else {console.error("axios 请求出错:", error);}});
}// 示例调用
axiosWithCancel("https://api.example.com/data");
axiosWithCancel("https://api.example.com/otherdata"); // 取消第一个请求


http://www.ppmy.cn/ops/141860.html

相关文章

【vue2】el-select,虚拟滚动(vue-virtual-scroller)

需求背景​​​​​​ vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。 在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的…

全局搜索正则表达式(grep)

一.grep简介 grep 全程Globally search a Regular Expression and Print,是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep和egrep 二.grep的工作…

SeaTunnel Web1.0.0安装

部署seatunnel2.3.8参考:部署seatunnel2.3.8-CSDN博客 SeaTunnel Web1.0.1对应的seatunnel2.3.3版本,所以如果要想在SeaTunnel Web1.0.1上能正常跑seatunnel对应版本包,在seatunnel上传的connector-开头的包,都得跟着SeaTunnel Web依赖的版本走,如安装了seatunnel2.3.7但…

Scala的导入

//导入 //(1) 创建包:在src上右键,新建软件包 //(2)填写包名:小写 //(3)在包上右键,创建类。自动加入包名 //(4)导入。import 包名.类名 //导入多个类 //import jh.yuanlixueyuan.bigdata.scala03.{A,B,C} //导入包下的所有的类 /…

Cleo文件传输软件存在任意文件读取漏洞(CVE-2024-50623)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

数据结构的高频题

一,setAll功能哈希表 要求使用setall方法时,哈希表里的所有键值对的值全部改变成一样。例如,使用setall将值全部设置为1. 但是又有要求,不能遍历哈希表,只能是常数时间。 原理 值不再是单纯一个int类型的数字&…

2+1 链动 S2B2C 商城小程序在互联网社群中的创新应用与价值剖析

摘要:本文深入探讨 21 链动 S2B2C 商城小程序如何在互联网社群语境下发挥独特作用并创造价值。互联网社群的兴起改变了社交与商业交互模式,而 21 链动 S2B2C 商城小程序凭借其创新机制,在促进社群成员参与、推动商品流通、优化社群商业生态等…

Spring Boot应用开发深度解析与实战案例

Spring Boot应用开发深度解析与实战案例 在当今快速发展的软件开发领域,Spring Boot凭借其“约定优于配置”的理念,极大地简化了Java应用的开发、配置和部署过程,成为了微服务架构下不可或缺的技术选型。本文将深入探讨Spring Boot的核心特性、最佳实践,并通过一个具体的…