vue-resource请求超时timeout设置
请求超时设置通过拦截器Vue.http.interceptors实现具体代码如下
main.js里在全局拦截器中添加请求超时的方法
方法1:超时之后会调用请求中的onTimeoutd方法,then方法不会执行
Vue.http.interceptors.push((request, next) => {
let timeout;
// 如果某个请求设置了_timeout,那么超过该时间,会终端该(abort)请求,并执行请求设置的钩子函数onTimeout方法,不会执行then方法。
if (request._timeout) {
timeout = setTimeout(() => {
if(request.onTimeout) {
request.onTimeout(request);
request.abort()
}
}, request._timeout);
}
next((response) => {
clearTimeout(timeout);
return response;
})
})
页面中用到vue-resource请求的地方如下设置即可。
this.$http.get('url',{
params:{.......},
......
_timeout:,
onTimeout: (request) => {
alert("请求超时");
}
}).then((response)=>{
});
方法2:超时之后可以在then的第二个error方法中获取,私以为这个方法更好一些
main.js中设置如下
Vue.http.interceptors.push((request, next) => {
let timeout;
// 這裡改用 _timeout
if (request._timeout) {
timeout = setTimeout(() => {
//自定义响应体 status:408,statustext:"请求超时",并返回给下下边的next
next(request.respondWith(request.body, {
status: ,
statusText: '请求超时'
}));
}, request._timeout);
}
next((response) => {
console.log(response.status)//如果超时输出408
return response;
})
})
页面请求设置
this.$http.get(`repairs/${this.repairs_id}`,{
params:{with:'room;user'},
_timeout:,//设置超时时间
}).then((response)=>{
},(err)=>{
console.log(err.status);//如果超时,此处输出408
});
/**
* ,%%%%%%%%,
* ,%%/\%%%%/\%%
* ,%%%\c "" J/%%%
* %. %%%%/ o o \%%%
* `%%. %%%% _ |%%%
* `%% `%%%%(__Y__)%%'
* // ;%%%%`\-/%%%'
* (( / `%%%%%%%'
* \\ .' |
* \\ / \ | |
* \\/ ) | |
* \ /_ | |__
* (___________))))))) 攻城湿
*
* _ _
* __ _(_)_ _(_) __ _ _ __
* \ \ / / \ \ / / |/ _` |'_ \
* \ V /| |\ V /| | (_| | | | |
* \_/ |_| \_/ |_|\__,_|_| |_|
*/
参考文章 https://segmentfault.com/q/1010000005800495/a-1020000005802004
vue-resource请求超时timeout设置的更多相关文章
- Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)
1. 实现效果 以get方法向http://192.168.32.12:8080/users 发起请求.获取数据并进行处理 this.apiGet('/users', {}) .then((res) ...
- vue axios请求超时,设置重新请求的完美解决方法
//在main.js设置全局的请求次数,请求的间隙 axios.defaults.retry = 4; axios.defaults.retryDelay = 1000; axios.intercep ...
- 模拟HTTP请求超时时间设置
HTTP请求有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间(请求资源超时时间). 使用curl命令行 连接超时时间用 --connect-timeout 参数来指定 数据传输的最大 ...
- Httpclient超时timeout设置
一:连接超时:connectionTimeout 1:指的是连接一个url的连接等待时间. 二:读取数据超时:soTimeout 1:指的是连接上一个url,获取response的返回等待时间. Fo ...
- vue axios 请求带token设置
API axios.js import axios from "axios"; let AUTH_TOKEN=(function(){ return localStorage.ge ...
- axios请求拦截及请求超时重新请求设置
自从使用Vue2之后,就使用官方推荐的axios的插件来调用API,在使用过程中,需要解决问题: 1. 请求带token校验 2. post请求请求体处理 3. 响应未登录跳转登录页处理 4. 响应错 ...
- ASP.NET Core如何设置请求超时时间
如果一个请求在ASP.NET Core中运行太久,会导致请求超时,目前ASP.NET Core对请求超时的设置比较麻烦,本文列出目前收集到的一些方法,供大家参考. 部署ASP.NET Core到IIS ...
- Sipdroid实现SIP(六): SIP中的请求超时和重传
目录 一. Sipdroid的请求超时和重传 二. SIP中超时和重传的定义 三. RFC中超时和重传的定义 一. Sipdroid的请求超时和重传 Sipdroid实现SIP协议栈系列, 之前的文章 ...
- 20180907_网络差_天安微信token请求超时
一.异常现象 token请求时,显示请求超时. 二.原因分析 这个异常有如下几个原因: (1)服务器没有开通 qyapi.weixin.qq.com 的外网权限 (2)服务器网络太慢 三.异常解决 ...
随机推荐
- 在java中如何用键盘输入一个数,字符,字符串
一,利用 Scanner 实现从键盘读入integer或float 型数据 import java.util.*; public class test { public static void mai ...
- Ruby 里的 %Q, %q, %W, %w, %x, %r, %s, %i (译)转
原文地址 转自 %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") >> %Q(Joe said: ...
- Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
Change the Target Recovery Time of a Database (SQL Server) 间接checkpoints flushcache flushcache-mes ...
- Curator Framework的基本使用方法
Curator Framework提供了简化使用zookeeper更高级的API接口.它包涵很多优秀的特性,主要包括以下三点: 自动连接管理:自动处理zookeeper的连接和重试存在一些潜在的问题: ...
- EasyPR--一个开源的中文车牌识别系统
我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...
- 【javascript 技巧】谈谈setTimeout的作用域以及this的指向问题
setTimeout的用法详见:http://www.w3school.com.cn/htmldom/met_win_settimeout.asp 是的,setTimeout的常见用法是让某个方法延迟 ...
- IIS ApplicationPoolIdentity
原创地址:http://www.cnblogs.com/jfzhu/p/4067297.html 转载请注明出处 从IIS 7.5开始,Application Pool Identity的Built- ...
- Getting&Giving
Technologies: Want to know: 1 emergency 1: 现在的工作即将需要的.要用到的技术 2 emergency 2: 现在的工作不相关.但公司相关的的技术 3 eme ...
- 一个上好的C# http/https类
直接Copy拿去用吧: 新的 tls 协议需要新的.net版本, tls 至少更新到.net4吧,尽量用最新的.net! 不然出错了就折腾... using System; using System. ...
- Android-webview和js互相调用
Android-webview和js互相调用 Android 和 H5 都是移动开发应用的非常广泛.市面上很多App都是使用Android开发的,但使用Android来开发一些比较复杂附属类,提示性的 ...