问题库 JavaScript / TypeScript how-to

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。
  • 重试和动态导入都要限制触发条件,防止失败时重复打满接口或资源。

相关内容