首页 > 解决方案 > 即使在 reactjs 中捕获错误,也会出现错误“未处理的拒绝(TypeError):api_call4.json 不是函数”

问题描述

在获取天气 api 时,如果发生断开连接,则会抛出错误并被捕获,几秒钟后错误会显示在屏幕上,这非常令人不快。没有解决此错误的想法。

  1. 应用程序.js 文件
const api_call4 = await fetch(`https://api.weatherbit.io/v2.0/current?` + 
`city=${city}&key=${API_KEY3}`).catch(error => toast.error('No Data Received',error))
const data4 = await api_call4.json();
console.log('DATA CURRENT', data4)

如您所见,上面的错误被捕获,但仍然显示错误。请看下图。什么是最好的解决方案...

在此处输入图像描述

标签: reactjs

解决方案


您必须更改流程以确保您的 api 调用成功。一种方法是使用 try/catch 块,因为您使用的是 async/await。就像是:

try {
  const api_call4 = await fetch(`https://api.weatherbit.io/v2.0/current?` + 
    `city=${city}&key=${API_KEY3}`)
  const data4 = await api_call4.json();
  console.log('DATA CURRENT', data4)
} 
catch(error) {
  toast.error('No Data Received',error)
}

推荐阅读