axios 取消请求 (2023-10-10更新)
配置局部取消请求
这种相当于局部的取消请求,作用于单个请求中
import axios from 'axios'
const source = axios.cancelToken.source()
axios
.get('getData', {
cancelToekn: source.token
})
.catch((err) => {
if (axios.isCancel(err)) {
console.log('Request canceled:', err.message)
} else {
console.log(err)
}
})
setTimeout(() => {
source.cancel('取消请求')
}, 1000)
配置全局取消请求 1(多个相同请求,取消上一次请求)
可以在拦截器中进行配置,做成全局的取消请求
import axios from 'axios'
const cancelMap = {}
const service = axios.create({})
service.interceptors.request.use((config) => {
const source = axios.CancelToken.source()
cancelMap[config.url] = source
config.cancelToken = source.token
return config
})
export const cancelRequest = (key) => {
if (cancelMap[key]) {
cancelMap[key].cancel('取消请求')
delete cancelMap[key]
}
}
以上这种方法适用于: 用户点击搜索,发起搜索请求,但上一次搜索请求还没有返回,这时候需要将上一次请求取消掉
适用于: 多个相同请求,需要将上一次请求取消掉
配置全局取消请求 2(取消这次请求之前的所有请求)
import axios from 'axios'
const source = axios.CancelToken.source()
const service = axios.create({})
service.interceptors.request.use((config) => {
config.cancelToken = source.token
return config
})
export const cancelRequest = (key) => {
source.cancel('取消请求')
}
这种方法适用于: 发起一次请求,取消之前的所有请求
以上方法如果嫌引入麻烦,可以自行绑定 Vue.prototype.cancelRequest
axios 取消请求 (2023-10-10更新)的更多相关文章
- axios 取消请求的方法
开发中遇到需要取消请求的功能,,点击终止查询可以取消开始查询请求,再次点击开始查询又可以进行查询. 解决方法:axios官方文档上的CancelToken,一开始用了这个api后,可以成功取消请求,但 ...
- axios 取消请求
解决思路 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. axios官方文档取消请求说明 方法一: const CancelTok ...
- axios 取消请求 (如:用户登录失效,阻止其他请求)
const CancelToken = axios.CancelToken; const source = CancelToken.source(); axios.interceptors.reque ...
- axios取消接口请求
axios取消请求 这里就是分析一下接口请求需要被取消时的一些操作 因为我是用vue写的项目,所以标配用的是axios,怎么在axios中取消已经发送的请求呢? 1.在这之前我们还是先介绍一下原生js ...
- axios取消重复请求与更新token并续订上次请求
一.问题引入 当用户发起一个请求时,判断token是否已过期,若已过期则先调refreshToken接口,拿到新的token后再继续执行之前的请求. 难点:当同时发起多个请求,token 过期会调用多 ...
- App Store审核指南中文版(2014.10.11更新)
App Store审核指南中文版(2014.10.11更新) 2014-10-11 16:36 编辑: suiling 分类:AppStore研究 来源:CocoaChina 2 8657 App ...
- Windows 10 周年更新正式版下载 + win10 快捷键
Windows 10 周年更新正式版 360云资源总汇(施工中): https://yunpan.cn/c6Svi7Az52XBs (提取码:e5dd)今后提到周年更新版.1607版或RS1版,都是 ...
- ubuntu 12.10 软件更新源列表
ubuntu 12.10正式版已经发布了,国内各大开源软件源也陆续更新了资源.今天分享一下ubuntu 12.10 软件更新源列表. 首先,习惯性的备份一下ubuntu 12.04 原来的源地址列表文 ...
- Windows 10创意者更新ISO发布!官方下载
http://news.mydrivers.com/1/526/526719.htm 去年7月份,微软面向Windows 10推出了“周年更新”,让系统变得更加稳定好用.今天,Windows 10迎来 ...
- Xamarin 2017.10.9更新
Xamarin 2017.10.9更新 本次更新主要解决了一些bug.Visual Studio 2017升级到15.4获得新功能.Visual Studio 2015需要工具-选项-Xamarin ...
随机推荐
- Winrar 免广告、去评估版的解决办法 ( 实测有效 )
事件起因: 在打开 Winrar 压缩软件的时候,总是会弹出广告弹窗,而且上面还是显示评估版本. 解决办法: 1. 正常安装 Winrar 软件 2. 安装破解软件--Restorator http: ...
- Linux_动态库与静态库(其一)
1.动态库和静态库的定义 动态库(.so):动态库是编译后不嵌入目标文件中的共享库,在程序运行的时候才去链接动态库的代码,可以被多个程序共享使用,通常以 .so 结尾. 静态库(.a):静态库是将一组 ...
- c++中字符/串->整数
char字符->整数数字:std::isdigit 用于判断某个字符是否为数字(0-9). 字符串->数字:std::stoi 用于将字符转换为整数. int isdigit( int c ...
- 宏定义define的用法
#define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令.它的作用是定义一个名为 read 的宏,用 ...
- 新东方在有状态服务 In K8s 的实践
作者|周培,新东方架构部容器组专家 有状态服务建设一直以来都是 K8s 中非常具有挑战性的工作,新东方在有状态服务云化过程中,采用定制化 Operator 与自研本地存储服务结合的模式,增强了 K8s ...
- OpenELB 在 CVTE 的最佳实践
作者:大飞哥,视源电子股份运维工程师, KubeSphere 社区用户委员会广州站站长,KubeSphere Ambassador. 公司介绍 广州视源电子科技股份有限公司(以下简称视源股份)成立于 ...
- 云原生周刊:GitOps 的 4 条核心原则
日前在温哥华举行的 cdCON + GitOpsCon 上,分享内容以 GitOps 原则为特色: GitOps 是声明式的: GitOps 应用程序是版本化的和不可变的: 自动拉取 GitOps 应 ...
- 7 个非常实用的 Shell 拿来就用脚本实例!
前天,在群里看到有一位读者分享了几道 Shell 脚本实例题目,索性看到了,不如来写写巩固下基础知识,如下: 1. 并发从数台机器中获取 hostname,并记录返回信息花费的时长,重定向到一个文件 ...
- 避免大量ifelse(枚举、工厂模式、策略模式)
枚举 public class Test { public static void main(String[] args) { System.out.println(judge("ROLE_ ...
- Octave 安装教程
Octave 用心写著. Octave为GNU项目下的开源软件.同时它也是一种语言,专注于解决线性计算问题.因为对于矩阵计算的优化,使得其速度远高于循环计算.语法兼容Linux shell. Octa ...