小编Pot*_*mer的帖子

如何处理 Axios 超时与挂起的 API 服务器?

尝试使timeoutaxios 工作的方法时遇到问题。

\n

为了测试:我故意设置了一个错误的 API 端点:它接受请求,抛出错误(例如:)throw new Error(\xe2\x80\x9ctesting for timeout\xe2\x80\x9d)并且故意不执行任何其他操作。

\n

一旦我调用测试 API 端点,我的客户端应用程序 (reactJS) 就会挂起 - 我预计它会在 2 秒内超时(我设置的超时)。我可以验证该应用程序正在与服务器建立联系。只有当我终止测试 API 服务器时,我的客户端应用程序才会立即继续。

\n

示例代码:

\n
const 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}\n
Run Code Online (Sandbox Code Playgroud)\n

编辑(~2020):

\n

经过进一步研究,看起来 axiostimeout仅适用于响应超时,而不适用于连接超时。针对连接超时的建议解决方案是取消方法(例如signalcancelToken (deprecated)):

\n

对此进行了测试并工作:

\n
const …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs axios

29
推荐指数
3
解决办法
12万
查看次数

标签 统计

axios ×1

javascript ×1

reactjs ×1