Skip to content

自动重试

retry 选项对超时和业务失败自动重试;主动 abort(abort() 或外部 abortSignal)不会重试。

typescript
const loader = new AsyncLoader(
    (args) => fetch("/api/data", { signal: args.abortSignal }),
    {
        timeout: 5_000, // 每次尝试 5 秒
        retry: 3, // 最多重试 3 次(总共最多 4 次尝试)
        retryDelay: 1_000, // 每次重试前等待 1 秒
    },
);

重试规则

失败类型是否重试
业务错误(loader 抛出 / reject)✅ 重试
超时(timeout 触发)✅ 重试
主动 abort()❌ 不重试
外部 abortSignal 触发中止❌ 不重试

相关选项

选项默认值说明
retry0最大重试次数(retry: 3 表示总共最多 4 次尝试)
retryDelay0每次重试前的等待毫秒数
timeout每次尝试的加载超时,超时算作一次可重试的失败

中止会终止重试等待

调用 abort() 时,若正处于重试等待中,等待也会被一并终止。

基于 MIT 许可协议发布