【发布时间】:2014-02-05 15:16:48
【问题描述】:
我遇到了奇怪的问题。这是关于“文本搜索”类型的谷歌地方搜索。我正在使用关键字搜索结果的地图,并有一个回调函数来创建结果(html 中的“li”)。
问题是 google Place search api 仅提供 20 个文本搜索结果。要检索更多结果,我们必须调用pagination.nextPage()。这会调用相同的回调函数并提供更多结果。
所以,
我的代码是
var request = {query: 'pizza in newyork'};
var service = new google.maps.places.PlacesService(map);
service.textSearch(request, callBack1);
function callBack1(results, status,pagination) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
//add place as li
}
if (pagination.hasNextPage) {
pagination.nextPage();
}
doOtherOperation();
}
function doOtherOperation() {
//do manipulations on "li" which are created from callBack1
}
问题是doOtherOperation() 在 callBack1() 完成执行之前开始执行。
有人可以帮忙吗?如何确保 callBack1 完全执行(包括pagination.nextPage() 的递归调用)?
【问题讨论】:
标签: javascript google-maps-api-3 google-places-api asynchronous