javascript - 如何检查搜索到的位置是否在 api 中匹配,如果不匹配则向用户显示警报
问题描述
如果您不在 API 中搜索位置(即拼写错误等),它只会在控制台中显示错误(即拼写错误等),发生这种情况时如何提醒用户?
const cityRef = document.querySelector('#location #city');
const searchbar = document.querySelector('.search-bar');
searchbar.addEventListener('keypress', searchQuery);
function searchQuery(evt) {
if (evt.keyCode == 13) {
searchbar.value && getData( searchbar.value );
}
}
function getData(query) {
fetch(`${api.base}weather?q=${query}&units=metric&APPID=${api.key}`)
.then(weather => weather.json()).then(displayData);
};
function displayData(weather) {
cityRef.innerText = `${weather.name}, ${weather.sys.country}`;}
解决方案
您可以在 catch 错误块中处理错误。
例子:
function getData(query) {
fetch(`${api.base}weather?q=${query}&units=metric&APPID=${api.key}`)
.then(weather => weather.json()).then(displayData).catch(error => {
// handle your error
alert("Your Error Message")
});
};
推荐阅读
- laravel - 上传图片在本地主机上完美运行,在实时站点上不起作用(谷歌应用引擎和 laravel)
- python - 具有动态估计测量方差的卡尔曼滤波器
- java - 使用 PrintWriter 和 File 获取文件未找到异常
- reactjs - 如何将 React 应用程序集成到现有的 asp.net 核心应用程序中?
- c++ - 是否有一种代码密集度较低的方法来使用非默认构造函数初始化数组?
- firemonkey - 有没有办法使用 Delphi 10.3 FMX TCalendar(或类似组件)选择/突出显示日期范围/系列?
- node.js - 使用 Node、SocketIO 和 Redis 将用户添加到连接到不同服务器的房间
- python - Errors: Module 'pygame' has no 'init' member, and others
- vue.js - Vue.js 自动完成
- python - 地面实况拟合比对噪声数据的交叉验证拟合更差?