0

我使用 Google Api 来检索地点详细信息,但 Google Api 根据类别一次只返回 20 个结果。JSON 解析文本包含 next_page_token ,它具有可用于检索包含结果的另一个页面等的引用。我的问题是如何将解析放入循环中,以便我可以获得所有总结果。

4

1 回答 1

1

所以你必须建立一个所有结果的列表,但在下载所有结果之前不要调用你的回调。在下面的代码中,我们一直调用函数来获取下一页结果,直到 next_page_token 不可用,在这种情况下,我们已经加载了所有结果并可以调用我们的回调函数。

var jsonresults = [];

function getPlacesResults(url, callback) {
    var xhr = Ti.Network.createHTTPClient({...});
    xhr.onload = function (data) {
      var json = JSON.parse(data);
      jsonresults.push(json)
      if (json.next_page_token) {
        //assumes next_page_token is a url we can pass in
        getPlacesResults(json.next_page_token, callback);
      } else {
        callback(jsonresults);
      }
    }
    xhr.open('GET', url);
    xhr.send();
}


//used like so
getPlacesResults('http://www.google.com/whatever', function (allResults) {
  //...do stuff with all of your results here.
});
于 2014-01-27T19:15:00.333 回答