我想从GoogleFusion表中读取一些数据,然后使用结果,对javascript不熟悉,我想了解如何公开结果以便我可以全局使用它,这是我到目前为止所拥有的:
<!DOCTYPE html>
<meta charset="utf-8">
<head>
<script src="http://ft2json.appspot.com/api/ft2json.js" type="text/javascript"></script>
<script type="text/javascript">
var results = ft2json.query(
'SELECT * FROM 1j1kKW9s9CrtZ6_o6MdC-xb0YNWb73rQQYENmzQ', /* Fusion Tables query. */
function(result) {
/* Callback function. */
console.log(result);
},
{
/* Optional parameters. */
start : 25,
limit : 50
}
);
console.log('data', results);
</script>
</head>
<body>
</body>
</html>
第一个console.log
返回Object,但第二个console.log('data', results);
返回Undefined
。
在Chrome控制台中首先阅读console.log('data', results);
,我不明白为什么?
答案 0 :(得分:0)
发生了什么
查询是异步的。所以,发生的是您的代码在等待查询结果时继续运行。请参阅下面的示例。
示例1
ft2json.query(
'SELECT * FROM 1j1kKW9s9CrtZ6_o6MdC-xb0YNWb73rQQYENmzQ', /* Fusion Tables query. */
function(result) {
/* Callback function. */
console.log(result);
// do stuff with result object here
},
{
/* Optional parameters. */
start : 25,
limit : 50
}
);
</script>
示例2
var doSomethingWithResult = function (result) {
// do stuff with result object here
};
ft2json.query(
'SELECT * FROM 1j1kKW9s9CrtZ6_o6MdC-xb0YNWb73rQQYENmzQ', /* Fusion Tables query. */
function(result) {
/* Callback function. */
doSomethingWithResult(result);
},
{
/* Optional parameters. */
start : 25,
limit : 50
}
);
</script>