我是 Javascript 编码的新手,已经在很多地方寻找过这些信息,但还没有找到一个可行的解决方案,因此我在这里发布了这个问题。
在 for 循环中,我尝试使用 -
service.search(request, callback);
其中 request 包括查询的 POI 的位置和类型等参数。我已经实现了如下回调函数 -
function callback(myResults, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
alert('myResults: ' + myResults.length);
// entire remaining code here, where I do some processing on the POIs.
}
}
此代码正在运行,并且在路线的每一段我都可以看到 POI,并且使用警报显示 POI 的数量。
我的问题是我不想在这里为每条腿处理“myResult”,而是收集整个路线(由许多条腿组成)的所有结果,然后立即进行处理。
我首先想到创建一个全局变量(“myPOI”)并在每条腿上附加“myResults”,一旦解析了整个路线,然后处理这个 myPOI,但我不能(或者我不知道如何)附加这个myResults 到全局变量 myPOI。
我正在考虑的另一个选项是从回调函数中获取返回(myResults),然后收集(附加)所有结果。
1 和 2 之间的唯一区别是,在 1 中,它是一个全局变量,我将在 if 条件中附加 myResults,在 2 中,如果 if 条件为真,则将 myResults 返回到 service.search 然后收集结果在那里。
我尝试使用 myPOIs.push(myResults) 和其他一些选项,但是当我检查 myPOIs.length 时,它始终为空。我真的不知道如何从回调函数中获取 myResults。
任何建议/通过/帮助对我来说都非常有用。
我只想使用 javascript 而不是别的。
非常感谢,斧头