# JavaScript 如何给异步请求加重试

URL: https://caijiao.org/how-to/javascript/retry-async-function
Source: docs/how-to/javascript/retry-async-function.md
Description: JavaScript 如何给异步请求加重试：循环调用失败后等待一段时间，超过最大次数再抛出错误。 示例可直接复制到浏览器或项目代码中，并附相关教程、工具入口。

## 快速答案

循环调用失败后等待一段时间，超过最大次数再抛出错误。

```js
async function retry(fn, times = 3) {
  let lastError;
  for (let i = 0; i < times; i++) {
    try { return await fn(); }
    catch (error) { lastError = error; }
  }
  throw lastError;
}
```

## 使用要点

- 异步示例要在调用边界捕获错误，避免未处理的 Promise rejection。
- 重试和动态导入都要限制触发条件，防止失败时重复打满接口或资源。

## 相关内容

- [JavaScript / TypeScript 问题](/how-to/javascript/)
- [JavaScript 教程](/javascript/)
- [TypeScript 教程](/ts/)
- [JSON Formatter](/tool/json-formatter)
- [JSON Validator](/tool/json-validator)
