axios拦截器里,让结果晚5秒钟返回就错了,为什么。。请问怎么写比较好?谢谢
axios.interceptors.response.use(data => { // 响应成功关闭loading
setTimeout(function () {
console.log("inter-response")
}, 5000)
return data
},
改成下面这样,5秒后再返回结果就发生错误
axios.interceptors.response.use(data => { // 响应成功关闭loading
setTimeout(function () {
console.log("inter-response")
return data
}, 5000)
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
代码相当于
所以会报错
不是很确定axios拦截器的回调函数支不支持返回promise,如果支持的话,大概这么写吧:
return new Promise(resolve => setTimeout(()=>{resolve(data)}, 5000));
或者用async,先写一个sleep函数:
然后在里边用:
不过,如果不支持promise的话...建议就别在拦截器里做这个事了,因为以js正常写法能实现的sleep函数大概长这样:
会卡成便秘的
(上面的代码不保证都能跑得通不报错,大概表达个意思)