首页 > 解决方案 > 如何检查搜索到的位置是否在 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}`;}

标签: javascriptjqueryapievent-listener

解决方案


您可以在 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")
    });
};

推荐阅读