我是Javascript编程的新手,已在许多地方查找过此信息,但尚未找到一个工作解决方案,因此我在此处发布此问题。使用从Javascript中的回调函数返回
在for循环我试图请求的区域的POI(所述路线的腿) -
service.search(request, callback);
其中请求包括如位置和查询类型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。
我的问题是,我不想在这里为每条腿处理“myResult”,但是收集整条路线的所有结果(由多条腿组成),然后立即执行处理。
我首先想到创建一个全局变量(“myPOIs”),并在每条腿追加“myResults”,一旦整条路线进行解析,然后处理此myPOIs,但我不能(或我不知道如何)将这个myResults追加到一个全局变量myPOIs。
另一种选择,我想到的是从回调函数中获取返回值(myResults),然后收集(附加)所有结果。
1和2之间的唯一区别是,在如图1所示,其一个全局变量我将追加myResults到if条件内,并且在图2,如果if条件为真,那么myResults返回service.search然后在那里收集结果。
我尝试使用myPOIs.push(myResults)和其他一些选项,但是当我检查myPOIs.length时,它始终为空。我真的不知道如何从回调函数中获取myResults。
任何建议/ throughts/help对我来说都是非常有用的。
而我只想使用javascript而没有其他任何东西。
非常感谢提前, AXS
你还可以加入for循环代码吗? –