自动重试
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 触发中止 | ❌ 不重试 |
相关选项
| 选项 | 默认值 | 说明 |
|---|---|---|
retry | 0 | 最大重试次数(retry: 3 表示总共最多 4 次尝试) |
retryDelay | 0 | 每次重试前的等待毫秒数 |
timeout | — | 每次尝试的加载超时,超时算作一次可重试的失败 |
中止会终止重试等待
调用 abort() 时,若正处于重试等待中,等待也会被一并终止。