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 オブジェクトの「結果」です。

JavaScript のスコープを誤解していると確信しています。しかし、これはうまくいくようで、同様の質問が見つかりません。

御時間ありがとうございます!!

4

2 に答える 2

0

transactionまたはは非同期executeSql関数です。つまり、その結果に関係するものはすべてコールバック関数に含める必要があります。

于 2012-09-14T22:57:38.013 に答える
0

クエリが返される前に呼び出しconsole.log()ています。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 に答える