什么情况下 npm backoff 库会尝试重试

问题描述

我正在使用 exponential-backoff npm 模块(虽然我认为这也适用于更广泛使用的 backoff 模块)。我不确定什么样的失败会触发“重试”。

调用一个非常简单的获取方法

async function register() {
  ...
  const response = await backOff(() => fetch(apiUrl,{
    method: 'POST',body: JSON.stringify(someBodyParams),}),{
    retry: (e,attemptNumber) => console.log({ event: e,attemptNumber }),});

  if (!response.ok) {
    const text = await response.text();
    const errorMessage = `Problem with fetch: ${text}`;
    throw new ArcError(response.status,errorMessage);
  }
}

那么它会尝试重试来自 fetch 的任何 4xx 或 5xx 响应吗?我可以想象像 400(错误输入)错误这样的事情可能会跳过重试。而 429(请求过多)正是退避的目的。或者我是否需要获得响应并决定明确抛出错误以使其重试?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)