service.interceptors.response.use(
null,
err => {
var config = err.config;
// 如果不是超时直接返回错误
if(err.code != 'ECONNABORTED' || !config || err.message.indexOf('timeout') === -1) return Promise.reject(err);
// 设置本次请求是第几此
config.__retryCount = config.__retryCount || 1;
// 当请求超过 7 此后将终止请求,返回错误信息
if(config.__retryCount >= 7) {
return Promise.reject(err);
}
// 请求次数加 1
config.__retryCount += 1;
// 创建一个新 promise 返回给调用接口的函数
var backoff = new Promise(function(resolve) {
setTimeout(function() {
resolve();
}, 1000);
});
// 返回 promise 返回给调用接口的函数,当到达一定时间(1000)后重新请求数据。
return backoff.then(function() {
return service(config);
});
}
axios 当响应超时后重新请求接口
?著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 此处使用了vux框架,可根据需要修改 自行填写域名地址 token添加的方式及位置,根据需求添加。(此处token...
- 此博客是参考http://blog.csdn.net/jdsjlzx/article/details/524421...
- vue项目中,处理用户过期的token遇到个小问题。按照思路,在axios请求拦截器中加上token过期的判断,当...