首页 > 解决方案 > 如何忽略异步函数中不可用的 API 数据?

问题描述

刚开始使用 React JS。我正在开发一个显示加密货币价格、代码、名称等的硬币交换 Web 应用程序。问题是,我想在显示中包含徽标(来自另一个 API),但遇到错误。我正在使用的硬币图标 API 不包括今天市场列表中的所有硬币。我如何告诉应用程序忽略那些没有图标并继续渲染所有内容?

const componentDidMount = async () => {
    const priceInquiry = await axios.get('https://api.coinpaprika.com/v1/tickers');
    const coinApiURL = 'https://cryptoicons.org/api/color/';

    let filteredRank = priceInquiry.data.sort(function(a, b)
        { return a.rank - b.rank}).slice(0, 20);

    let newCoinData = filteredRank.map(function(coin){
        return {
          key: coin.id,
          name: coin.name,
          ticker: coin.symbol,
          icon: getIcon(coin.symbol),
          balance: 0,
          price: //some function that gets the latest price,
          rank: coin.rank
        }
      }
    )

    async function getIcon(ticker){
      const lowercaseTicker = ticker.toLowerCase();
      const response = await axios.get('https://cors.bridged.cc/' + coinApiURL + lowercaseTicker+'/200')
          .catch((error) => undefined); // I tried setting the value to undefined but still getting 
                                                 // errors
      return response.data;
    }

对不起,如果这是一个超级菜鸟问题。非常感谢任何帮助...另外,如果您注意到一些奇怪的做法,请告诉我,以便我知道(并从中学习!)。

标签: javascriptreactjsapifrontendweb-frontend

解决方案


您正在调用错误的 url api getIcon 函数。我安慰记录了这个,它显示你正在调用https://cors.bridged.cc/https://cryptoicons.org/api/color/uni/200,这是错误的,你肯定会收到 404 错误


推荐阅读