首页 > 解决方案 > ReactJS 递归性能

问题描述

我有这个从免费硬币 api 获取数据的功能。

export async function fetchAllCoinsPromise() {
  const apiCall = await fetch('https://api.coincap.io/v2/assets');
  const jsonResult = await apiCall.json();

  return jsonResult;
}

问题是这个公共 api 有每日调用限制,但如果你反复调用 api,它最终会为你获取你需要的数据,所以为了克服这个问题,我写了这样的递归:

const fetchCoins = () => {
    fetchAllCoinsPromise()
      .then(res => {
        setCoinsArray(res.data);
        return res.data;
      })
      .catch(() => {
        fetchCoins();
      });
  };

然后我在useEffect. 我认为这是一个很好的优化解决方案,但经过一番挖掘后,我发现了一些关于堆栈溢出的讨论,其中一些开发人员说递归是最坏的情况,我不确定它是否与我的情况相同。如果需要,有什么关于改进代码的建议吗?

标签: reactjs

解决方案


推荐阅读