javascript - 如何忽略异步函数中不可用的 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;
}
对不起,如果这是一个超级菜鸟问题。非常感谢任何帮助...另外,如果您注意到一些奇怪的做法,请告诉我,以便我知道(并从中学习!)。
解决方案
您正在调用错误的 url api getIcon 函数。我安慰记录了这个,它显示你正在调用https://cors.bridged.cc/https://cryptoicons.org/api/color/uni/200,这是错误的,你肯定会收到 404 错误
推荐阅读
- javascript - 验证具有相同名称[]和不同行类别的输入
- google-apps-script - 我需要一个谷歌脚本在谷歌表格中运行以删除空白单元格右侧的单元格
- r - 更改堆叠条形图中的颜色
- c# - webservice WCF 上的 maxRequestLength 已超出
- python - Python(熊猫):基于两列删除重复项,在另一列中保持行与标志
- typescript - 带有包罗万象的道具的可能递归对象的打字稿接口
- python - 服务器可以发布广播消息来终止工作人员吗?兔MQ
- angular - 当堆栈元素属性有值时如何呈现属性?
- c++ - 如何使用 stringstream 在循环中追加?例如
- swift - 设置 UIImageView 宽度、高度、纵横比和约束 X、Y