永发信息网

如何用vue-resource设置timeout回调

答案:1  悬赏:20  手机版
解决时间 2021-02-04 12:09
  • 提问者网友:不要迷恋哥
  • 2021-02-04 07:31
如何用vue-resource设置timeout回调
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-02-04 07:48
VueResource 其实还是有一些 bug ,有空再写个 PR ...

研究了下源码,可以透过一些方式实现你要的结果,首先是设置 timeout ,会触发 timeout interceptor

这是原本的 timeout interceptor

export default function (request, next) {

var timeout;

// 有设置值就启动一个定时器
if (request.timeout) {
timeout = setTimeout(() => {
// 这里有问题,作者写了一个 request.abort() , 这里却用 cancel() 囧
// 所以在 timeout 触发时就会出问题
// 就算是 abort ,也只会 request 被取消掉,不会有任何返回
// 就像你看到的 status statusText 都是空的
request.cancel();
}, request.timeout);
}

next((response) => {

clearTimeout(timeout);

});
}

在不修改源码的前提下,我们要绕过原本的 timeout interceptor ,自己实现一个 timeout interceptor 的流程 ,所幸是作者提供了增加自定义 interceptor 的方法,下面是我的实现方式,有两种,可以改成其他符合你需求的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯