javascript 谷歌地点API:如何监听错误事件?

osh3o9ms  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(106)

我在我的前端JS应用程序中使用Google Places Autocomplete API,如下所示:

const place = new google.maps.places.Autocomplete(inputRef.value, options)
google.maps.event.addListener(place, 'place_changed', function () {
  const { place_id: placeIdGoogle, formatted_address: name } = place.getPlace()
  // ...
})

我希望捕获错误,特别是速率限制错误,以便优雅地处理它们并向用户显示一些内容。
是否有可以订阅的event

ar5n3qh5

ar5n3qh51#

google.maps.places.Autocomplete类没有处理错误的内置事件,但是可以使用getPlace()方法检查返回的PlaceResult对象的status属性。status属性可以指示请求是否有错误。status属性的可能值为:

  • “确定”:请求成功。
  • “零结果”:未找到该请求的结果。
  • “超过查询限制”:您已超出每日请求配额。
  • “请求被拒绝”:请求被服务器拒绝。
  • “无效请求”:请求的格式不正确。

例如,可以在place_changed事件监听器中添加一个检查,以处理速率限制错误:

google.maps.event.addListener(place, 'place_changed', function () {
  const placeResult = place.getPlace();
  if (placeResult.status === 'OK') {
    const { place_id: placeIdGoogle, formatted_address: name } = placeResult;
    // ...
  } else if (placeResult.status === 'OVER_QUERY_LIMIT') {
    console.log("Exceeded daily request quota for Places API.");
    //handle this error with a message to the user
  }
});

这只处理由Google Places API产生的错误。任何其他错误都可能来自网络连接、浏览器问题或其他问题,您应该单独处理这些问题。

相关问题