axios使用axiosSource.cancel取消请求后怎么恢复请求,axios取消请求和恢复请求实现

在前端做大文件分片上传,或者其它中断请求时,需要暂停或重新请求,比如这里大文件上传时,可能会需要暂停、继续上传,如下GIF演示:
在这里插入图片描述

这里不详细说文件上传的处理和切片细节,后续有时间在出一篇,大文件上传,切片上传、断点续传、秒传等😀。
不扯远了,紧接本篇主题😅。

如何使用axios取消请求

axios中已经实现了取消请求的操作,一共

  • 第一种 从 v0.22.0 开始,Axios 支持以 fetch API 方式—— AbortController 取消请求,示例如下
import axios from 'axios';
const controller = new AbortController();
let fetchSignal = controller.signal
axios.post('http://www.***.cn/', {signal: fetchSignal
}).then((response)=> {//...
});// 取消请求,不支持message参数
controller.abort()
  • 第二种使用CancelToken.source工厂方法创建一个 cancel token ,如下所示:
import axios from 'axios';
let axiosSource = axios.CancelToken.source();axios({method: 'post',url: 'http://www.***.cn/',data: formdata,// 提交的文件数据或其它参数cancelToken: axiosSource.token,headers: { 'Content-Type': 'multipart/form-data' },
}).then((response)=> {//...
});// 取消请求,支持message参数
axiosSource.cancel('取消请求');
  • 第三种 通过传递一个executor函数到CancelToken的构造函数来创建一个 cancel token,这里就不介绍了,可以查看官网示例🧐。

本文采用第二种方式实现。

如何重新发送请求

在重新发送请求前,需要重新生成CancelToken.source,不然再也无法从该URL获得成功的响应,因为同一个CancelToken.source都会被取消请求,如下图打印结果:
在这里插入图片描述

所以在重新请求前,需要重新生成一个CancelToken.source,代码如下:

// 重新发送请求
axiosSource = axios.CancelToken.source();
axios({
//....代码同上
})

最后在放上axios官网的说明及实例链接 点我直达
如果本文对您有帮助,还请点个小赞😉。
本文完~

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

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

相关文章

PyTorch Lightning:通过分布式训练扩展深度学习工作流

一、介绍 欢迎来到我们关于 PyTorch Lightning 系列的第二篇文章!在上一篇文章中,我们向您介绍了 PyTorch Lightning,并探讨了它在简化深度学习模型开发方面的主要功能和优势。我们了解了 PyTorch Lightning 如何为组织和构建 PyTorch 代码提…

数据结构 - 算法设计的基本要求

1、算法的描述: 自然语言:英语、中文流程图:传统流程图、NS流程图伪代码:类语言 - 类C语言程序代码:Java、C语言 2、算法的特性: 一个算法必须具备以下五个特性: 3、算法设计的要求 正确性可…

分代收集 + 垃圾回收算法

分代假说 1. 弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的 2. 强分代假说(Strong Generational Hypothesis):熬过越多次垃圾收集过程的对象就越难以消亡 3. 跨代引用假说&…

leetcode 125.验证回文串

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/valid-palindrome/ 思路: 这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换,但是里面是含有数字字符的,所以先统一&#xff…

爬虫逆向实战(十八)--某得科技登录

一、数据接口分析 主页地址:某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密? 无…

JavaScript 快速入门手册

本篇文章学习: 菜鸟教程、尚硅谷。 JavaScript 快速入门手册 💯 前言: 本人目前算是一个Java程序员,但是目前环境… ε(ο`*))) 一言难尽啊,blog也好久好久没有更新了,一部分工作原因吧(外包真…

window安裝python2.7.0

官网下载安装 https://www.python.org/downloads/release/python-270/ 选中所有用户,然后点击next 切换安装位置,最好不要选择c盘 点击next 等待安装 安装完成 配置环境变量 将python安装路径添加到系统环境变量 cmd窗口输入python,会打开应用商…

Idea中隐藏指定文件或指定类型文件

Setting ->Editor ->Code Style->File Types → Ignored Files and Folders输入要隐藏的文件名,支持*号通配符回车确认添加

基于51单片机直流电机转速数码管显示控制系统

一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等…

LNMP及论坛搭建

目录 安装Nginx服务 1.安装依赖包 2.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限) 3.编译安装Nginx 4.优化路径 5.添加 Nginx 系统服务 安装 MySQL 服…

正则表达式在PHP8中的应用案例-PHP8知识详解

正则表达式在php8中有许多应用案例。以下是一些常见的应用场景:如数据验证、数据提取、数据替换、url路由、文本搜索和过滤等。 1、数据验证 使用正则表达式可以对用户输入的数据进行验证,例如验证邮箱地址、手机号码、密码强度等。 下面是一个用正则表…

BDA初级分析——SQL多表连接应用

一、用SQL拼接数据 三个初始数据 问题1:在所有的数据里,销售额最高的产品品类名是什么? 问题2:是否有什么产品是在所观测的时间里没有被购买过的? 拼接数据:JOIN join,加入 作用&#xff1…

uniapp 上传比较大的视频文件就超时

uni.uploadFile,上传超过10兆左右的文件就报错err:uploadFile:fail timeout,超时 解决: 在manifest.json文件中做超时配置 uni.uploadFile({url: this.action,method: "POST",header: {Authorization: uni.getStorage…

【es6】中的Generator

Generator 一、Generator 是什么?1.1 与普通函数写法不一样,有两个不同 二、Generator 使用2.1 书写方法 三、yield语句3.1 yield和return3.2 注意事项3.3 yield*语句3.4 yield*应用 四、next方法4.1参数 总结 一、Generator 是什么? Genera…

[JavaWeb]【一】入门JavaWeb开发总概及HTML、CSS、JavaScript

目录 一 特色 二 收获​编辑 三 什么是web? 四 网站的工作流程 五 web网站的开发模式​编辑 六 web开发课程学习安排 七、初始web前端 八 HTML、CSS 8.1 什么是HTNL\CSS(w3cschool) 8.2 HTML快速入门 8.3 VS Code开发工具 8.3.1 插件 8.3.2 主题(改变颜色&…

【C++】做一个飞机空战小游戏(八)——生成敌方炮弹(rand()和srand()函数应用)

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

solidwords(5)

我们打算从上面画出总体,再从上面、侧面切除 最后成品

blender 发射体粒子

发射体粒子的基础设置 选择需要添加粒子的物体,点击右侧粒子属性,在属性面板中,点击加号,物体表面会出现很多小点点,点击空格键,粒子会自动运动,像下雨一样; bender 粒子系统分为两…

抖音火山引擎推出免费域名DNS和公共DNS服务

抖音旗下的云计算服务火山引擎最近推出了"TrafficRoute DNS 套件"服务,其中包括两款产品,对软希网来说非常有用。 1.域名DNS: 这是一个用于网站域名的DNS服务,可以加速域名解析速度,从而提升网站的速度。如…

【3Ds Max】挤出命令的简单使用(实现二维变三维)

简介 在3ds Max中,"挤出"(Extrude)是一种常用的建模操作,用于在平面或曲面上创建立体几何形状。以下是使用3ds Max中的挤出命令的基本步骤: 创建基本几何形状: 在3ds Max中创建一个基本的几何形…