reactjs - 即使在 reactjs 中捕获错误,也会出现错误“未处理的拒绝(TypeError):api_call4.json 不是函数”
问题描述
在获取天气 api 时,如果发生断开连接,则会抛出错误并被捕获,几秒钟后错误会显示在屏幕上,这非常令人不快。没有解决此错误的想法。
- 应用程序.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)
如您所见,上面的错误被捕获,但仍然显示错误。请看下图。什么是最好的解决方案...
解决方案
您必须更改流程以确保您的 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)
}
推荐阅读
- java - GET 请求的参数被放入 URL 的查询字符串中。在 POST 请求中,它们位于请求正文中,那么 URL 是什么样的?
- ios - 在 UICollectionView 中加载第一个单元格之前获取 UICollectionViewCell
- java - 西蒙说按下按钮后按钮颜色不会恢复正常
- javascript - jQuery UI datepicker 和对话框未定义的第一次点击
- nginx - Nginx 上的 Modsecurity modsecurity.conf-recommended Source Not Found
- mysql - phpmyadmin mysql docker 简单链接
- ecmascript-6 - es6 导入:命名导入的变量
- javascript - 将路径数组转换为唯一路径数组
- php - 根据列值对 JSON API 进行分类
- elasticsearch - Elasticsearch:获取每个结果中匹配的术语列表