微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

超时后中断并重试函数执行

如何解决超时后中断并重试函数执行

我正在使用 node.js 库,它与一些 RPC 服务器进行通信。问题是有时来自库的函数调用会导致无限循环(大约 500 分之一的机会,因此很难调试)。我想该库没有正确处理超时逻辑。

我想自己实现这个逻辑,但不知道如何中断内部函数的执行。 总而言之,我想创建一个包装函数,它会在超时后中断回调函数并重试调用

用法示例:

原始函数调用

const response = await contract.someAction()

回调包装器:

async function retry(callback,timeout,retryAttempts) {...}

const response = await retry(contract.someAction(),10000,3)

如果我理解正确,像 https://github.com/vercel/async-retry 这样的一些解决方案只有在回调函数抛出异常时才有效,但对无限循环没有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。