js fetch请求中断的几种方式
1、通过AbortController
这是官方标准手段,真正意义的阻止请求(不支持ie)
后端接口设置的两秒返回数据
function myFetch() {const controller = new AbortController();const signal = controller.signal;fetch('http://localhost:3000/aaa/bbb', {method: 'post',signal,headers: {'Content-Type': 'application/json'}}).then(res => res.json()).then(res => {console.log(res);return res;}).catch(e => {console.log(e);})// setTimeout(()=> {// controller.abort();// }, 1000)
}
默认结果:

解开定时器后:


2、模拟中断
通过promise,成功用resolve返回,失败用reject返回(浏览器上,请求依然会发出,并得到响应)
第一种方法:
function getData() {return new Promise((resolve, reject) => {myFetch().then(res => {resolve(res);});setTimeout(() => {reject({code: '500',msg: '请求失败'})}, 1000);})
}async function gotData() {try {const data = await getData();console.log(data);} catch (error) {console.log(error);}
}
gotData();
运行结果:

第二种方法:
function getData() {let myReject = null;let myPromise = new Promise((resolve, reject) => {myReject = reject;myFetch().then(res => {resolve(res);});});myPromise.abort = () => myReject({code: '500',msg: '请求失败'});return myPromise;
}async function gotData() {const result = getData();result.then(res => {console.log(res);}).catch(e => {console.log(e);})setTimeout(() => {result.abort();}, 1000);
}
gotData();
相关文章:
js fetch请求中断的几种方式
1、通过AbortController 这是官方标准手段,真正意义的阻止请求(不支持ie) 后端接口设置的两秒返回数据 function myFetch() {const controller new AbortController();const signal controller.signal;fetch(http://localhost:3000/aaa/…...
Python自动化实战之使用Selenium进行Web自动化详解
概要 为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何…...
“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会顺利召开
研讨会主题 8月10日,“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会在浙江大学计算机创新技术研究院举办。 本次研讨会的主题聚焦于“智能网联汽车的数据安全与数据合规”,邀请行业主管部门和数据…...
消息中间件面试题
异步发送(验证码、短信、邮件…) MYSQL和Redis,ES之间的数据同步 分布式事务 削峰填谷 RabbitMQ如何保证消息不丢失? 开启生产者确认机制,确保生产者的消息能到达队列 开启持久化功能,确保消息未消费前在队列中不会丢失 开启消费…...
麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展
麻辣烫,这道源自中国的美食,早已成为人们生活中不可或缺的一部分。它独特的香辣口味,让人忍不住每每流连忘返。与人们的关系,简直如同挚友一般。每当寒冷的冬日或疲惫的时刻,麻辣烫总是悄然走进人们的心房,…...
大数据课程J1——Scala的概述
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点; ⚪ 了解Scala的开发环境搭建; ⚪ 了解Scala的开发工具; 一、概述 1.简介 Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提…...
第二章:25+ Python 数据操作教程(第十三节NUMPY 教程与练习)
NumPy(“Numerical Python”或“Numeric Python”的缩写)是 Python 中对数组和矩阵进行快速数学计算的最基本的软件包之一。在处理多维数据时它也非常有用。集成C、C++和FORTRAN工具是一件幸事。它还提供了许多傅里叶变换 (FT) 和线性代数函数。 为什么使用 NumPy 而不是列…...
【Java面试】如果一个线程两次调用start(),会出现什么问题?
这个问题出自阿里p6岗位第一面的提问,你会回答吗? 在Java里面,一个线程只能调用一次start()方法,第二次调用会抛出IllegalThreadStateException异常。 一个线程本身是具备一个生命周期的。 在Java里面,线程的生命周…...
购买steam余额有风险吗?以及N种被红锁的情况
购买steam余额有风险吗?以及N种被红锁的情况 无论是打游戏的玩家,还是像我们这类靠倒卖装备赚钱的小商贩,都面临充值美金余额的问题,我们现在主要是找的专业充值渠道做代充。 最近我发现群里有极个别学员通过自己的方法找到了一…...
使用 BERT 进行文本分类 (02/3)
一、说明 在使用BERT(1)进行文本分类中,我向您展示了一个BERT如何标记文本的示例。在下面的文章中,让我们更深入地研究是否可以使用 BERT 来预测文本是使用 PyTorch 传达积极还是消极的情绪。首先,我们需要准备数据…...
基于Hadoop的表级监管
现状 大数据平台中,采用hadoop的方式存储数据,hdfs本质上是文件系统,而文件系统对数据的监管能力有限,但是数据安全领域问题日渐凸显,现目前,大数据平台一般以分层结构进行授权,但是对于一线开发人员而言,是能够接触到整个大数据平台中的所有表的,那么如何实现这样一…...
【学习日记】【FreeRTOS】延时列表的实现
前言 本文在前面文章的基础上实现了延时列表,取消了 TCB 中的延时参数。 本文是对野火 RTOS 教程的笔记,融入了笔者的理解,代码大部分来自野火。 一、如何更高效地查找延时到期的任务 1. 朴素方式 在本文之前,我们使用了一种朴…...
LeetCode解法汇总833. 字符串中的查找与替换
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 你会得到一…...
ide internal errors【bug】
ide internal errors【bug】 前言版权ide internal errors错误产生相关资源解决1解决2 设置虚拟内存最后 前言 2023-8-15 12:36:59 以下内容源自《【bug】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是h…...
阿里云与中国中医科学院合作,推动中医药行业数字化和智能化发展
据相关媒体消息,阿里云与中国中医科学院的合作旨在推动中医药行业的数字化和智能化发展。随着互联网的进步和相关政策的支持,中医药产业受到了国家的高度关注。这次合作将以“互联网 中医药”为载体,致力于推进中医药文化的传承和创新发展。…...
【Redis】Redis 的学习教程(五)之 SpringBoot 集成 Redis
在前几篇文章中,我们详细介绍了 Redis 的一些功能特性以及主流的 java 客户端 api 使用方法。 在当前流行的微服务以及分布式集群环境下,Redis 的使用场景可以说非常的广泛,能解决集群环境下系统中遇到的不少技术问题,在此列举几…...
github以及上传代码处理
最近在github上传代码的时候出现了: /video_parser# git push -u origin main Username for https://github.com: gtnyxxx Password for https://gtny2010github.com: remote: Support for password authentication was removed on August 13, 2021. remote: Plea…...
【PACS源码】认识PACS的架构和工作流程
(一)PACS系统的组成及架构 PACS系统的基本组成部分包括:数字影像采集、通讯和网络、医学影像存储、医学影像管理、各类工作站五个部分。 而目前PACS系统的软件架构选型上看,主要有C/S和B/S两种形式。 C/S架构,即Client…...
【C++】开源:跨平台Excel处理库-libxlsxwriter配置使用
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Excel处理库-libxlsxwriter配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…...
前端-轮询
一、轮询定义 轮询是指在一定的时间间隔内,定时向服务器发送请求,获取最新数据的过程。轮询通常用于从服务器获取实时更新的数据。 二、轮询和长轮询区别 轮询是在固定的时间间隔内向服务器发送请求,即使服务器没有数据更新也会继续发送请求…...
优化算法避坑指南:为什么BFGS比DFP更常用?从数值稳定性到工程实践详解
优化算法避坑指南:为什么BFGS比DFP更常用?从数值稳定性到工程实践详解 在机器学习模型训练和工程优化问题中,我们常常需要求解无约束优化问题。当目标函数的海森矩阵难以计算或维度较高时,拟牛顿法因其出色的平衡性成为首选。但面…...
STM32F407的RTC时钟不准?手把手教你用CubeMX配置LSE晶振校准(附源码)
STM32F407的RTC时钟不准?手把手教你用CubeMX配置LSE晶振校准(附源码) 在嵌入式系统开发中,实时时钟(RTC)的精度问题常常让开发者头疼。特别是使用STM32F407这类主流单片机时,即使按照官方文档配…...
提升开发效率:IntelliJ IDEA必备插件推荐与安装指南(2023最新版)
2023年IntelliJ IDEA插件生态深度解析:从效率工具到全栈开发支持 JetBrains家族的IntelliJ IDEA早已超越普通代码编辑器的范畴,成为现代开发者手中的瑞士军刀。但鲜有人意识到,真正让这把军刀所向披靡的,是背后超过5000个官方认证…...
Multisim课程设计救星:从卡诺图到仿真,手把手搞定五人表决器(附源文件)
五人表决器数字电路设计实战:从卡诺图到Multisim仿真的全流程解析 第一次拿到数字电路课程设计任务书时,看着"五人表决器"这个题目,我的大脑和实验室的示波器一样一片空白。直到在面包板上成功点亮第一个LED指示灯,才真…...
告别繁琐流程:用快马AI生成脚本实现龙虾部署效率飞跃
最近在团队里负责微服务部署时,发现每次更新代码都要重复执行十几个步骤:拉代码、装依赖、打镜像、推仓库、重启容器...一套流程下来至少半小时,还容易手滑出错。于是研究了一套自动化方案,用Python脚本把整个流程串了起来&#x…...
MCP服务器越权访问漏洞零容忍方案(基于Open Policy Agent的动态策略引擎实战)
第一章:MCP服务器越权访问漏洞零容忍方案总览MCP(Microservice Control Plane)服务器作为微服务架构中权限调度与策略执行的核心组件,其任意越权访问均可能导致全链路认证绕过、敏感配置泄露甚至横向渗透。本方案坚持“零容忍”原…...
[实战] 从点云到避障:FIESTA ESDF实时构建全解析
1. 为什么需要实时ESDF构建 当机器人需要在复杂环境中自主移动时,避障是最基础也最关键的能力。想象一下你在黑暗中摸索前行,手碰到墙壁就立即缩回——机器人也需要类似的"触觉"。欧氏距离场(ESDF)就是机器人的三维空间…...
软件工程小白必看:从零理解软件生命周期与常见模型
软件工程入门指南:从零理解开发全流程与核心模型 从生活场景看软件生命周期 想象一下建造一栋房子的过程——从最初的蓝图设计到最终交付钥匙,每个阶段都有明确的目标和交付物。软件开发的历程同样如此,我们称之为"软件生命周期"。…...
小型物联网系统——家居网关设计(C语言实现)
一、系统概述 家居网关是小型物联网系统的核心枢纽,负责多协议设备接入、数据汇聚转发、本地/远程控制三大核心功能。本设计基于STM32F103C8T6主控,集成Zigbee(传感器接入)、Wi-Fi(云端通信)、GPIO…...
从“单点防御”到“全局联动”:手把手教你用EDR和NDR构建企业安全闭环
从“单点防御”到“全局联动”:手把手教你用EDR和NDR构建企业安全闭环 当企业的安全团队还在疲于应对零散的端点告警和网络流量异常时,攻击者早已开始采用自动化工具进行横向移动。传统孤立的防御手段就像用多个单点摄像头监控银行金库——每个摄像头都…...
