我在用 fetch 做 API 请求,网络偶尔不稳定,想加个重试机制,但不知道怎么写才不乱。试过在 catch 里再调一次,结果有时候会无限重试,或者状态没控制好。
比如下面这个简单的请求组件,该怎么加最多重试三次的逻辑?
<script>
async function fetchData() {
const res = await fetch('/api/data');
if (!res.ok) throw new Error('请求失败');
return res.json();
}
</script>
调用的时候不用传参数,默认就试3次。试完还不行就抛出错误,外面再catch处理。