2

我正在使用 javascript 来查询这个谷歌融合表,但不明白如何从我的函数中返回值。

function fusionTableQuery(){    
    var result;
    var queryurl = "http://www.google.com/fusiontables/api/query?sql=";    
    var sql = "SELECT+City+FROM+2175264+WHERE+Population>200000"; 
    var querytail = "&jsonCallback=?";        
    var jqxhr=$.get(queryurl + sql + querytail, result = 
                function queryHandler(data) {   // display retrieved data    
                    console.log(data.table.rows);
                    return data.table.rows;
                }
                , "jsonp") 

    return result;

}

我可以在console.log()输出中看到我想看到的值,但我对回调的工作没有清楚的了解。

我想要的是将查询结果存储在一个变量中,类似于以下内容:

cities = fusionTableQuery()

你能帮助我更好地理解如何实现这一目标吗?我很难理解回调应该如何在这里工作。或者,如果不需要,我也很乐意在此处不使用回调。

4

1 回答 1

3

您可以这样做:

var cities;

function createSidebar(searchStr) {
  //searchStr is your query -> SELECT * FROM table ...

  var queryText = encodeURIComponent(searchStr);
  var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=' + queryText);

  query.send(getData); //set the callback function
}

function getData(response) {
 cities = response.getDataTable();     
}
于 2012-01-24T16:33:54.863 回答