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)
  })
阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题