循环通过可融合的结果

时间:2012-08-14 17:03:14

标签: javascript

我想从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);,我不明白为什么?

1 个答案:

答案 0 :(得分:0)

发生了什么

  1. 您的查询已发送(查询功能)
  2. 调用了console.log('data',results)
  3. 您的回调函数已被调用
  4. 查询是异步的。所以,发生的是您的代码在等待查询结果时继续运行。请参阅下面的示例。

    示例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>