有一个需求,需要在请求超时的时候做处理。自然就想到在axios的response的失败回调中处理,网上方法很多不赘述,说一下遇到的问题吧。手上有几个项目我都用同样的方法实现了,最后测试给我的反馈是:某一个项目中人为降低接口的速度使之远超过超时时间(5s)。结果是界面一直被我loading住,然后会等到接口完全响应过了很长一段时间后仍然可以刷出数据。打了断点看到确实最后进入了response的成功回调中,也就是timeout失效了。
我翻了一下源码:
正常的超时都会从此进入,我检查了timeout是否缺失。发现仍然是有的
一直纠结在超时时间上,尝试过设置很大的延迟,接口完成一共花了6分钟,仍然不会超时,6分钟后照样得到正常的数据。靠!
这就很难受了,两个项目写的一样的为啥这个就坏了。
最后老王提醒我“你把请求发送的原始的xmlHttpRequest的实例对象 console出来 看看”
卧槽,怎么是个mock... 原来被mockjs影响了。回想起之前查过的资料中有人一笔带过这个内容。mockjs还是在接口通了之后删掉吧!
最后 // import mock from 'mockjs';
点个赞再走吧