axios 为什么通过拦截器计算的请求时间,超过了预设的 timeout ?
在写爬虫脚本时用到了 axios,发现了这个比较让人困惑的地方。
timeout 不是指发起请求到响应之间的最长时间吗 ?
如果 timeout 指的是等待响应的最长时间,那又该怎样获取 "从发起请求到开始响应" 的这一段等待响应的时间呢 ?
谢谢 希望有人解决我这个小白的疑惑
// end
axios.interceptors.response.use(function (response) {
response.config.metadata.endTime = new Date().getTime()
console.log(`end ${response.config.metadata.endTime}`)
response.duration = response.config.metadata.endTime - response.config.metadata.startTime
return response;
}, function (error) {
error.config.metadata.endTime = new Date().getTime();
error.duration = error.config.metadata.endTime - error.config.metadata.startTime;
return Promise.reject(error);
});
// start
axios.interceptors.request.use(function (config) {
config.metadata = { startTime: new Date().getTime()}
console.log(`start ${config.metadata.startTime}`)
return config;
}, function (error) {
return Promise.reject(error);
});
axios.get(url, {
timeout: 500,
})
.then((response) => {
console.log(response.duration)
return response.data;
})
.catch((error) => {
console.log(error.message)
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论