javascript - 超时后中断并重试函数执行
问题描述
我正在使用 node.js 库,它与一些 RPC 服务器进行通信。问题是有时来自库的函数调用会导致无限循环(大约 500 次机会中的 1 次,因此很难调试)。我想该库没有正确处理超时逻辑。
我想自己实现这个逻辑,但不知道如何打破内部函数的执行。总而言之,我想创建包装函数,它会在超时后中断回调函数并重试调用。
使用示例:
原始函数调用:
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这样的解决方案只有在回调函数抛出异常时才有效,但对无限循环没有帮助。
解决方案
推荐阅读
- python - 基于特定键和值的子集复杂嵌套字典
- oracle - 基于字段的匹配算法分数
- r - R ggplot2瀑布问题
- redirect - IIS 重定向映射不适用于根目标
- jquery - jQuery UI Datepicker - 如何动态禁用特定日期
- docker - 谷歌云构建语法
- haskell - 如何将具有两个生成器的列表推导重新表达为两个具有一个生成器的列表推导并获得相同的结果?
- python - 为networkx中的节点分配了错误的颜色
- python - 如何在 Dash,Python 中并排放置下拉菜单
- swift - ObservableObject如何观察Binding值(不是值类型)的变化