【发布时间】:2013-07-13 02:56:41
【问题描述】:
我目前正在遍历一组位置对象。然后我打电话给谷歌,让我得到那个位置的全景图。问题是这个请求是异步的,所以当回调实际被调用时,我传递的位置变量是数组中的最后一个位置。
这里是示例代码和控制台日志输出:
for location in paginated_data.locations
console.log location
latLng = new google.maps.LatLng(location.latitude,location.longitude)
@sv.getPanoramaByLocation(latLng, 50, (StreetViewPanoramaData, StreetViewStatus) =>
console.log location
)
如您所见,在初始循环中,控制台会看到正确的位置,在回调中,它只显示循环中的最后一个位置。谁能指出我如何解决这个问题的正确方向?
【问题讨论】:
-
请发布您的回调,以及完整的功能。
-
回调是一个匿名函数:(StreetViewPanoramaData, StreetViewStatus) => console.log location
-
getPanoramaByLocation 是一个 google api 函数,这就是为什么我无法控制传递给回调的变量的原因。默认情况下,谷歌调用返回 StreetViewPanoramaData、StreetViewStatus,但我还需要位置
标签: javascript asynchronous coffeescript