import useState from react;import getUserTagList from servicescommon;interface CurrentUserType appId string; id string; name string; type1 string; type2 string;export default function useTen
为了避免接口报500错误时无限调用接口,你可以在请求出错时增加一个错误计数器,当错误次数达到一定阈值时,不再调用接口。你可以修改代码如下:
export default function useTenant() {
const [currentUserTag, setCurrentUserTag] = useState<Partial<CurrentUserType>>({});
const [userTagList, setUserTagList] = useState<CurrentUserType[]>([]);
const [errorCount, setErrorCount] = useState(0); // 错误计数器
const requestList = async () => {
try {
const { data } = await getUserTagList({});
setUserTagList(data?.userTagList || []);
setCurrentUserTag(data?.currentUserTag);
setErrorCount(0); // 每次请求成功时重置错误计数器
} catch (err) {
if (err) {
setErrorCount(errorCount + 1); // 请求出错时增加错误计数器
if (errorCount < 3) { // 当错误次数小于3时继续调用接口
requestList();
}
}
}
};
return {
currentUserTag,
userTagList,
requestList,
};
}
在上面的代码中,我们增加了一个errorCount错误计数器,每次请求出错时增加一次计数,当计数达到3时,不再调用接口。这样可以避免接口连续报错时无限调用接口。你可以根据实际需求调整错误计数器的阈值
原文地址: https://www.cveoy.top/t/topic/hKuF 著作权归作者所有。请勿转载和采集!