在写爬虫脚本时用到了 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)
})