尝试使timeoutaxios 工作的方法时遇到问题。
为了测试:我故意设置了一个错误的 API 端点:它接受请求,抛出错误(例如:)throw new Error(\xe2\x80\x9ctesting for timeout\xe2\x80\x9d)并且故意不执行任何其他操作。
一旦我调用测试 API 端点,我的客户端应用程序 (reactJS) 就会挂起 - 我预计它会在 2 秒内超时(我设置的超时)。我可以验证该应用程序正在与服务器建立联系。只有当我终止测试 API 服务器时,我的客户端应用程序才会立即继续。
\n示例代码:
\nconst axios = require(\'axios\')\n\nconst test1Press = async () => {\n try\n {\n await axios.post(\'https://mynodeserver.com/api/debug/throw\', {timeout: 2000})\n console.log("post call passed")\n }\n catch (err)\n {\n console.log("post call failed")\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n编辑(~2020):
\n经过进一步研究,看起来 axiostimeout仅适用于响应超时,而不适用于连接超时。针对连接超时的建议解决方案是取消方法(例如signal、cancelToken (deprecated)):
对此进行了测试并工作:
\nconst …Run Code Online (Sandbox Code Playgroud)