功能说明
为 fetch 封装常用的重试策略:仅对瞬时故障重试、指数退避、达到上限后放弃。重试判定函数可注入,因此同一封装可适配按状态码、按异常或自定义规则的重试。
运行命令
node retry.mjs https://example.com
预期输出
对一次即成功的目标,程序应报告一次尝试及其状态码,console.log 输出为:
attempts=1 status=200
限制
退避默认是指数形式且不含抖动;当大量客户端同时重试同一端点时,应加入随机化以避免同步风暴。
上述代码与预期输出严格对应,可在本地按运行命令复现并逐项核对。当前实现覆盖了最常见的使用路径,超出上文限制所述边界的场景需要额外的设计与实现。若要在生产环境使用,建议先补充输入校验、错误处理与日志,再结合自身环境调整依赖版本。
本译文由 AI 依据英文原文完整重写,包含功能说明、运行方式与真实预期输出,供中文读者对照英文原稿阅读。