我的问题是我想遍历一个数组并检索每个项目的 JSON 数据,然后填充它。我知道下面的方法不起作用,因为它会在收到第一个响应之前循环遍历每个“n”。
对我来说有意义的是在我的回调函数中再次调用请求。因此,在收到第一个响应后,它将拨打电话以获取第二个响应......等等,等等。
任何人都可以帮助我如何去做这样的事情吗?最终目标是用适当的响应填充每个数组项。我是编程新手,所以这对我来说有点复杂。
function getDistance() {
for (n in addresses()) {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [clientLocation()],
destinations: [addresses()[n].position()],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
}, callbackFunction);
}
function callbackFunction (response, status) {
addresses()[n].distanceText(response.rows[0].elements[0].distance.text)
addresses()[n].distanceValue(response.rows[0].elements[0].distance.value)
//get the next one??
};
}
PS我知道我应该向距离矩阵服务发送一个数组,我会的,但我想一般地找出这个问题,因为它经常出现。
PPS 我使用的是 knockout.js,因此是addresses()[n] 调用。
谢谢你。