1

这是我的代码:

var resultSet;

db.transaction(function (tx){
    tx.executeSql('SELECT * FROM table WHERE name = ?', [name], function (tx, results) {
        resultSet = results;
    });
});

console.log(resultSet);

记录的是“未定义”。

我希望得到的是分配给“resultSet”的 SQLResultSet 对象“results”。

我确定我误解了 JavaScript 中的作用域。但这似乎应该有效,我找不到类似的问题。

谢谢你的时间!!

4

2 回答 2

0

要么 要么transactionexecuteSql一个异步函数,这意味着任何涉及其结果的东西都必须包含在回调函数中。

于 2012-09-14T22:57:38.013 回答
0

在查询有机会返回之前,您正在调用console.log()with 。resultSet

将调用移动log()到查询回调中:

db.transaction(function(tx) {
    tx.executeSql('SELECT * FROM table WHERE name = ?', [name], function(tx, results) {
        console.log(results);
    });
});
于 2012-09-14T22:57:52.707 回答