使用 Google Maps JS 的无限循环 API 地方详情调用 "open_now"
Infinite loop with Google Maps JS API place details call "open_now"
我正在使用 Google 地图 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)
我的代码(在 Typescript 中)是:
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")。
我该如何解决这个问题?
这似乎是版本 37 中包含的 util.js
的问题。您可以通过将 Google 地图 API 版本字符串更改为 v=quarterly
或36.
https://maps.googleapis.com/maps/api/js?v=quarterly&key=...&libraries=geometry,drawing,places
(将那些库换成你自己的)
详情请见:https://developers.google.com/maps/documentation/javascript/versions
此问题最近已得到修复。这也在 Google 的 Public 问题跟踪器中报告:https://issuetracker.google.com/issues/137213536
该问题是由于最近的地图 JavaScript API 版本 3.37 翻转引起的,Google 工程师已根据 public 错误修复了该问题。
请注意,切换到旧版本是一种临时解决方法,一旦旧版本被完全弃用,它将不再有效。如果新版本的错误在您这边仍然重现,您可以在上面的问题link上发表评论,以便工程师进一步调查。
我正在使用 Google 地图 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)
我的代码(在 Typescript 中)是:
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")。
我该如何解决这个问题?
这似乎是版本 37 中包含的 util.js
的问题。您可以通过将 Google 地图 API 版本字符串更改为 v=quarterly
或36.
https://maps.googleapis.com/maps/api/js?v=quarterly&key=...&libraries=geometry,drawing,places
(将那些库换成你自己的)
详情请见:https://developers.google.com/maps/documentation/javascript/versions
此问题最近已得到修复。这也在 Google 的 Public 问题跟踪器中报告:https://issuetracker.google.com/issues/137213536
该问题是由于最近的地图 JavaScript API 版本 3.37 翻转引起的,Google 工程师已根据 public 错误修复了该问题。
请注意,切换到旧版本是一种临时解决方法,一旦旧版本被完全弃用,它将不再有效。如果新版本的错误在您这边仍然重现,您可以在上面的问题link上发表评论,以便工程师进一步调查。