私はJavascriptが初めてで、Firefoxアドオンを作成しようとしています。
SQL クエリから返されたデータを呼び出し関数に渡したり抽出したりしようとしています。うまくいかないようです。
変数のスコープに関する情報を検索し、このサイトで見ることができる関連する投稿を調べ、機能すると言われている例を試しましたが、どれも機能しませんでした。
次のストレージ情報を使用しています:
https://developer.mozilla.org/en/Storage
https://developer.mozilla.org/en/mozIStorageStatement
私は何を間違っていますか、またはこれをどのように行うべきですか?
XPでfirefox 12を実行しています。
function Sqlite() {
this.dbConn = "";
this.empty = true;
}
Sqlite.prototype.retrieveData = function(query)
{
var rows = new Array(); // to be returned to the calling function
var stmt = this.dbConn.createStatement(query); // my "select..." statement
stmt.executeAsync ({
handleResult: function(aResultSet)
{
this.empty = false;
var i = 0;
for (let row; row = aResultSet.getNextRow();i++) {
rows[i] = row;
}
},
handleError: function(anError) {
//some code
},
handleCompletion: function(aReason) {
if (this.empty) {
// CODE FOR WHEN STATEMENT EXECUTION IS FINISHED
}
if (aReason == Ci.mozIStorageStatementCallback.REASON_FINISHED) {
document.getElementById("debug").value = rows[0]; //gets the data from the query: [xpconnect wrapped mozIStorageRow]
return true;
}
}
});
document.getElementById("debug").value = rows[0]; //gets undefined
stmt.finalize();
return rows; // the info is no longer available at this point.
}
私は本当にあなたの助けに感謝します