axios请求拦截器错误_Axios使用拦截器全局处理请求重试

Axios拦截器

Axios提供了拦截器的接口,让我们能够全局处理请求和响应。Axios拦截器会在Promise的then和catch调用前拦截到。

请求拦截示例

axios.interceptors.request.use(function (config) {

// 在发起请求请做一些业务处理

return config;

}, function (error) {

// 对请求失败做处理

return Promise.reject(error);

});

响应拦截示例

axios.interceptors.response.use(function (response) {

// 对响应数据做处理

return response;

}, function (error) {

// 对响应错误做处理

return Promise.reject(error);

});

Axios实现请求重试

在某些情况(如请求超时),我们可能会希望能够重新发起请求。这时可以在响应拦截器做下处理,对请求发起重试。

请求重试需要考虑三个因素:

重试条件

重试次数

重试时延

配置

axios.defaults.retry = 1; //重试次数

axios.defaults.retryDelay = 1000;//重试延时

axios.defaults.shouldRetry = (error) => true;//重试条件,默认只要是错误都需要重试

响应拦截重试

axios.interceptors.response.use(undefined, (err) => {

var config = err.config;

// 判断是否配置了重试

if(!config || !config.retry) return Promise.reject(err);

if(!config.shouldRetry || typeof config.shouldRetry != 'function') {

return Promise.reject(err);

}

//判断是否满足重试条件

if(!config.shouldRetry(err)) {

return Promise.reject(err);

}

// 设置重置次数,默认为0

config.__retryCount = config.__retryCount || 0;

// 判断是否超过了重试次数

if(config.__retryCount >= config.retry) {

return Promise.reject(err);

}

//重试次数自增

config.__retryCount += 1;

//延时处理

var backoff = new Promise(function(resolve) {

setTimeout(function() {

resolve();

}, config.retryDelay || 1);

});

//重新发起axios请求

return backoff.then(function() {

return axios(config);

});

});

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

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

相关文章

第十一章项目沟通管理重点--转载

《信息系统项目管理师教程》第十一章项目沟通管理重点 11.1项目沟通管理的重要性 1、编码、通信、传播媒介、噪声、解码。确认是接收到信号,但并不需要理解,而反馈信息指读懂信息,解码并回复。 2、沟通障碍:认识障碍、…

WPF 如何将IconFont图标转成Geometry

之前每次使用IconFont图标,都要去下载一个png图片,每次颜色什么的改了,都要重新下载,太苦逼了。现在好了,终于找到如何方便快速地使用IconFont图标了。是应该的演示如何从IconFont网站上找到Geometry先看看效果吧&…

给所有想从事软件研发的年轻工程师的忠告与建议

图片来源:Fargo Season 3一、我为什么写这篇文章:这几天,在某个IT论坛的软件培训与认证栏目中,看到了很多处于迷惑之中的人们,也看到了许多大家普遍感到困惑的问题,写此文章的目的,是想将我这些…

谁今天收到鸿蒙系统推送,鸿蒙系统正式推送,只有部分高端机才能收到

原标题:鸿蒙系统正式推送,只有部分高端机才能收到华为已经对鸿蒙2.0系统开始进行推送更新,从华为推出鸿蒙系统概念已经时隔几年了,如今华为把ppt系统映射进现实是真正为自己正名了,而且据华为陈述鸿蒙2.0已经能达到安卓…

layui导入模板数据_java+layui的Excel导入导出

//导入PostMapping(value "importData")ResultJson importData(RequestParam MultipartFile file) {ResultJson resultJson newResultJson();List importData null;try{importData ExcelUtil.importExcel(file.getInputStream(), ProjectJson.class);}catch(IOExce…

入门基础-VC网络编程入门

对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然…

NET问答: 如何按属性进行 Distinct() ?

咨询区 Patrick Desjardins&#xff1a;我现在正在学习 LINQ&#xff0c;对一个简单类型的 List 进行 Distinct() 是非常简单的&#xff0c;如 List<int> 或 List<string>&#xff0c;但如果对复杂类型 List<T> 的某一个或者多个属性进行 Distinct() 的话&am…

html站点如何命名,html页面的CSS、DIV命名规则

68. XHTML文件中id的命名(1)页面结构容器: container页头&#xff1a;header内容&#xff1a;content/container页面主体&#xff1a;main页尾&#xff1a;footer导航&#xff1a;nav侧栏&#xff1a;sidebar栏目&#xff1a;column页面外围控制整体布局宽度&#xff1a;wra…

2020邮箱账号密码大全_通知 | 复旦大学2020年春季学期研究生选课FAQ

1选课须知1. 研究生选课系统什么时间开放&#xff1f; 答&#xff1a;2020年春季学期研究生选课系统开放时间为&#xff1a;2020年2月19日(周三)10:00至2020年3月9日(周一)10:00。2020年3月9日(周一)10:00后&#xff0c;研究生可以在选课系统中查询课表、已选课程、学分获得情况…

如何从零开始构建深度学习项目?这里有一份详细的教程

导读&#xff1a;在学习了有关深度学习的理论之后&#xff0c;很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步开始&#xff0c;告诉你如何解决项目开发中会遇到的各类问题。本文由六大部分组成&#xff0c;涵盖深度学习 ( DL ) 项目的整个过程。我们将使用一个…

性能分布式NewLife.XCode对无限数据的支持

上周发布了《改进版CodeTimer及XCode性能测试》&#xff0c;展示了NewLife.XCode在性能上的表现。实际上NewLife.XCode是一个很平凡的ORM&#xff0c;只是在分页和缓存方面多下点功夫&#xff0c;注意每一个细节&#xff0c;才能保证在数据量大、业务繁忙的环境中得以保持良好的…

C#实用小知识:string和判断null

stringstring是常用的类型&#xff0c;它具有不可变性&#xff1a;就是一旦赋值&#xff0c;就不可变&#xff0c;如果再赋值 &#xff0c;就重新开辟内存空间&#xff1b;保留性&#xff1a;如果一个字符串存在&#xff0c;另一个与其相同&#xff0c;他们会指向同一个地址&am…

s6730堆叠_不再只是堆叠硬件 ivvi S6全方位评测

【PConline 评测】ivvi是酷派公司的又一个全新的子品牌&#xff0c;与旗下的电商品牌“大神”相比&#xff0c;ivvi的定位更为高端&#xff0c;动用酷派公司的顶级资源打造&#xff0c;通过线上线下一体销售。在机身做工设计与硬件选用方面ivvi尽善尽美&#xff0c;集合了酷派手…

.net html5页面缓存,详解HTML5中的manifest缓存使用

起源html5之前的网页&#xff0c;都是无连接&#xff0c;必须联网才能访问&#xff0c;这其实也是web的特色&#xff0c;这其实对于PC是时代问题并不大&#xff0c;但到了移动互联网时代&#xff0c;设备终端位置不再固定&#xff0c;依赖无线信号&#xff0c;网络的可靠性变得…

机器学习的最佳学习路线原来只有四步

AI这个词相信大家都非常熟悉&#xff0c;近几年来人工智能圈子格外热闹&#xff0c;光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。在机器学习领域&#xff0c;Python已经成为了主流。一方面因为这门语言简单易上手&#x…

AutoCAD VBA基于对象的分层

AutoCAD VBA基于对象的分层&#xff0c;讲不同对象根据特性分层&#xff0c;代码如下。 Dim Value As Variant Value ThisDrawing.GetVariable("cmdecho") ThisDrawing.SetVariable "cmdecho", 0 Dim ObjLayer As AcadLayer Set ObjLayer ThisDrawing.La…

ASP.NET Core Filter如何支持依赖注入

概述通过使用 ASP.NET Core 中的筛选器&#xff0c;可在请求处理管道中的特定阶段之前或之后运行代码。内置筛选器处理任务&#xff0c;例如&#xff1a;授权&#xff08;防止用户访问未获授权的资源&#xff09;。响应缓存&#xff08;对请求管道进行短路出路&#xff0c;以便…

做流向图_各类型供热暖系统图大全,一饱眼福!

↑ 点击上方“暖通风向标”关注我们推广.暖通风向标本文来源&#xff1a;制冷网好书推荐做热泵这几本书你不得不看&#xff01;区域供热系统热电联产系统地热水供暖系统即热式生活热水系统即热式特点:可保证用户随时随地均有热水供应&#xff0c;系统紧凑&#xff0c;无需储罐&…

怎样和程序猿谈一场不散场的爱情

这篇文章就教你如何优&#xff08;xin&#xff09;雅&#xff08;ji&#xff09;的驯服程序猿男友。先分享2个网友的养猿故事。对于程序员&#xff0c;大家想必会有这么一个印象&#xff1a;生活简单乏味&#xff0c;除了编程、吃饭、睡觉&#xff0c;就是上网、打游戏或者一副…

ITU-R BT.656 协议

ITU-R BT.601和ITU-R BT.656国际电信联盟&#xff08;International Telecommunication Union&#xff09;无线通信部门&#xff08;ITU-R&#xff09;制定的标准。严格来说&#xff0c;ITU-R BT.656应该是隶属ITU-R BT.601的一个子协议。ITU-R BT.601是演播室数字电视编码参数…