为了避免接口报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时,不再调用接口。这样可以避免接口连续报错时无限调用接口。你可以根据实际需求调整错误计数器的阈值

import useState from react;import getUserTagList from servicescommon;interface CurrentUserType appId string; id string; name string; type1 string; type2 string;export default function useTen

原文地址: https://www.cveoy.top/t/topic/hKuF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录