axios "timeout"配置在"windows"和"alpine"系统上无法工作,

oxalkeyp  于 5个月前  发布在  iOS
关注(0)|答案(2)|浏览(91)

描述问题


以上代码在 "windows" 和 "alpine" 系统节点适配器上无法正常工作,且需要为 options.timeout 配置值以使其生效。
推测这是由于节点 API 的平台兼容性问题。

重现步骤

const http = require('http')
const startTime = Date.now()

const req = http.get('http://199.199.199.199', { timeout: 2000 }, () => {
  console.log('res')
})

req.setTimeout(1000, () => {
  console.log('timeout', Date.now() - startTime)
})

上述代码在 "centos" 和 "mac" 上将 timeout 设置为 1000,而在 "windows" 和 "alpine" 上设置为 2000。如果移除 options 中的 timeout 配置,将达到大约 130 秒的最大 TCP 超时,表明 req.setTimeout 没有生效。
假设 "199.199.199.199" 是一个不存在的 IP,即无法连接到的 IP。

预期行为

http 适配器需要在 "windows" 和 "alpine" 上添加以下代码配置才能生效。

axios 版本

1.4.0

适配器版本

http

浏览器

  • 无响应*

浏览器版本

  • 无响应*

Node.js 版本

16

OS

windows/alpine

其他库版本

  • 无响应*

其他上下文/截图

  • 无响应*
dkqlctbz

dkqlctbz1#

你好,
我刚接触这个仓库,想确认你遇到的问题是关于在使用Axios在不同环境中为HTTP请求设置超时时间,特别是在Windows和Alpine系统上。

sf6xfgos

sf6xfgos2#

你好,

我刚接触这个仓库,想确认你遇到的问题是关于在使用Axios在不同环境中设置HTTP请求超时(特别是在Windows和Alpine系统上)的问题。

是的

相关问题