为啥我从 API 调用中得到太多响应

Posted

技术标签:

【中文标题】为啥我从 API 调用中得到太多响应【英文标题】:Why i am getting too many response from the API call为什么我从 API 调用中得到太多响应 【发布时间】:2021-03-18 02:47:11 【问题描述】:

我无法停止 api 调用。处理这种情况的正确方法应该是什么。

const successCallback = (position) => 
    console.log("in success");
    setCoord( ...coord, latitude: position.coords.latitude.toFixed(4), longitude: position.coords.longitude.toFixed(4) )
  
  const failCallback = () => 
    alert("Give Location Permission for currect Location.")
  
  if (window.navigator.geolocation) 
    window.navigator.geolocation.getCurrentPosition(successCallback, failCallback)
   else 
    alert("Geolocation is not supported by this browser.")
  
  const url3 = `http://api.openweathermap.org/data/2.5/weather?lat=$coord.latitude&lon=$coord.longitude&appid=MYKEY`
  const fetchWeather = async () => 
    const responce = await Axios.get(url3)
    console.log(responce);
  
  useEffect(() => 
    fetchWeather()
  , [coord])

【问题讨论】:

【参考方案1】:

添加选项以限制调用successCallback 的频率

const options = 
  enableHighAccuracy: true,
  timeout: 10000,
  maximumAge: 20000
;
window.navigator.geolocation.getCurrentPosition(successCallback, failCallback, options)

或者如果你希望它只被调用一次,使用

const options = 
  timeout: 0
;

【讨论】:

以上是关于为啥我从 API 调用中得到太多响应的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Platform - AI Platform:为啥调用 API 时会得到不同的响应正文?

为啥我从 google drive rest api 得到服务器回复被禁止?

如果这个nodejs rest api没问题并且它的mongoose结构和mongodb数据,为啥我从mongoDB得到空值?

图形 API 调用返回 GraphMethodException - 为啥?

为啥我从 MySQL 查询中得到重复的项目?

为啥我从 html doc 得到函数未定义错误?