首页 > 解决方案 > 带有 Google Maps JS API 地点详细信息的无限循环调用“open_now”

问题描述

我正在使用 Google Maps Javascript API 来获取地点详细信息。截至昨天,我一直收到此错误:

RangeError: Maximum call stack size exceeded
    at Object._.Xm (common.js:1)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)
    at Object.get [as open_now] (util.js:213)

我的代码(在打字稿中)是:

async function getGooglePlaceDetails(placeId: string, sessionToken?: string) {
  const googleMapsClient = createClient({
    key: config.googleMapsServerAPIKey,
    Promise,
  });

  const response = await googleMapsClient
    .place({ placeid: placeId, sessiontoken: sessionToken })
    .asPromise();

  return response;
}

对于某些地方,例如ChIJ71yZMAvSCl8RY1u0MpwXJXA(“Houheikyou hot springs”),这会失败。

我该如何解决?

标签: javascripttypescriptgoogle-mapsgoogle-maps-api-3

解决方案


此问题最近已修复。这也在谷歌的公共问题跟踪器中报告:https ://issuetracker.google.com/issues/137213536

该问题是由于最近的 Maps JavaScript API 版本 3.37 翻转造成的,Google 工程师已根据公共错误修复了该版本。

请注意,切换到旧版本是一种临时解决方法,一旦旧版本完全弃用,将不再有效。如果新版本的错误在您端仍然可以重现,您可以在上面的问题链接中发表评论,以便工程师进一步调查。


推荐阅读