如何用vue-resource设置timeout回调?
module.exports = {
name: 'segmentfault',
methods: {
loadData: function(uuid) {
this.$http.get('/mockjs/test', // url
{a: 1}, // params
{timeout:500} // options
).then(
// success callback
function(response) {
console.log("成功这里没问题")
},
// fail callback
function(response) {
console.log(response.status); //为0
console.log(response.statusText); //为空
console.log("黑人问号?");
}
需求:
我想实现超时后写一个回调
我的思路
如果能够知道statusText是timeout,然后我就修改data的某一个值x,然后再用watch监听x,然后来写timeout的回调。
我遇到的问题
statusText并没有显示timeout。。呵呵。。
请问大家有没有解决方法?或者其他方法?谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
VueResource
其實還是有一些bug
,有空再寫個 PR ...研究了下源碼,可以透過一些方式實現你要的結果,首先是設置
timeout
,會觸發timeout interceptor
這是原本的
timeout interceptor
在不修改源碼的前提下,我們要繞過原本的
timeout interceptor
,自己實現一個timeout interceptor
的流程 ,所幸是作者提供了增加自定義interceptor
的方法,下面是我的實現方式,有兩種,可以改成其他符合你需求的jsFiddle
jsFiddle
方法1并不会timeout触发并不会停止请求