我的一个函数中有以下代码。我有一个数组“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.
}
最佳答案
这是异步行为。代码底部的警报可能在数据库查询之前执行。
关于Javascript 数组的奇怪行为。全局声明无法保值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168906/