Javascript 对Google Fusion表使用回调

Javascript 对Google Fusion表使用回调,javascript,callback,google-fusion-tables,Javascript,Callback,Google Fusion Tables,我正在使用javascript查询google fusion表,不知道如何从函数返回值 function fusionTableQuery(){ var result; var queryurl = "http://www.google.com/fusiontables/api/query?sql="; var sql = "SELECT+City+FROM+2175264+WHERE+Population>200000"; var que

我正在使用javascript查询google fusion表,不知道如何从函数返回值

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()
output中看到我想要看到的值,但是我对回调的工作原理没有清楚的了解

我希望将查询结果存储在一个变量中,如下所示:

cities = fusionTableQuery()

你能帮我更好地理解如何做到这一点吗?我很难理解回调在这里是如何工作的。或者,如果不需要回调,我也很乐意在这里不使用回调。

以下是您可以做到的方法:

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();     
}

谢谢@Bassam——不过,通过这种方法,我不知道查询何时返回了一个值供以后计算。也许这也是我最初建议的方法的一个问题。@celenius您想知道您的查询是否返回了行吗?如果是这样的话,您可以使用cities.getNumberOfRows()==0I想知道何时从融合表返回值;我想这意味着我只是从回调
getData()
@celenius中调用后续函数。。或者你的getData可以保存你想对数据做的任何事情的代码。从本质上讲,调用getData是您如何确定查询返回的data@celenius没问题,很高兴我能帮忙!