【发布时间】:2014-03-04 06:52:46
【问题描述】:
我正在构建一个基于 HERE MAPS 的 Web 应用程序。我正在尝试实现从 >= 2 个航路点获取行车路线。
所以用户输入他的地址。首先,应用程序必须对这些地址进行地理编码以避免错误。
这是表单提交事件处理程序:
$('.form-directions').on('submit', function () {
waypoints = [];
$('.waypoint').each(function () {
geoCode($(this).val());
});
return false;
});
这是geoCode() 函数:
function geoCode (address) {
nokia.places.search.manager.findPlaces({
searchTerm: address,
onComplete: onGeoCodingCompleted,
searchCenter: map.center
});
}
这是一个异步任务,完成后调用onGeoCodingCompleted(),如下:
function onGeoCodingCompleted(data, requestStatus, requestId) {
if (requestStatus == "OK") {
var locations = data.results.items;
waypoints.push(locations[0].position);
} else if(requestStatus == "ERROR") {
alert("error");
}
}
所以在地理编码过程完成后,我想规划行车路线。问题是,我不知道是否所有的地理编码过程都已完成。如果用户提交 ex。 150 个地址,比提交 2 个地址需要更长的时间。
tl;博士 当所有 geoCode() 任务完成时,如何设置一个调用函数的处理程序?
【问题讨论】:
标签: javascript jquery asynchronous here-api