0

我的一个函数中有以下代码。我有一个数组 'arr' 在 if{} 中使用时可以正常工作。但是它现在在外面使用时可以工作。谁能指出我所缺少的。

 function runQueries()
 {
    var arr = new Array;

    db.transaction (function (transaction) 
      {
        var sql = "SELECT * FROM incomecategory";

        transaction.executeSql (sql, undefined, 
        function (transaction, result)
        {
          if (result.rows.length)
          {
            for (var i = 0; i < result.rows.length; i++) 
            {
              var row = result.rows.item (i);
              var categoryname = row.categoryname;
              arr[i] = categoryname;
            }
                              //alert(arr[0]); // It works


          }  
          else
          {

          }
        }, error);

      });
       //alert (arr[0]); // It doesn't work. 

 }
4

1 回答 1

4

这是异步行为。代码底部的警报可能在数据库查询之前执行。

于 2013-10-03T20:46:37.210 回答