问题描述
我正在使用 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 (将#修改为@)