electronモジュールでnode.jsのsqlite3モジュールを使用しています。私はjavascriptが新しく、コールバックと非同期コードで苦労しています。NodeiteのコールバックにSQLiteの結果を渡す方法
私の意図は、getTable関数を実行し、テーブル配列を作成し、その配列をuseTable関数であるコールバック関数に渡すことです。
ので、この機能は、構築し、パステーブルの配列必要があります。
をfunction getTable(callback) {
const sqlite3 = require('sqlite3').verbose();
var testDatabase = new sqlite3.Database('app/data/testDatabase.db');
var table = [];
var testRow = [];
testDatabase.each("SELECT * FROM test_Accounts", function(err, row) {
testRow.push(row.test_id);
testRow.push(row.test_creation_date);
testRow.push(row.domain);
testRow.push(row.test_login_url);
table.push(testRow);
testRow = [];
});
testDatabase.close();
callback(table);
}
そして、この関数は、テーブルの配列を取得し、それを使用します:
function useTable(table) {
//code that uses the table array passed to this function from the getTable function.
}
そして、私はこのようにこれを実行します:
をgetTable(useTable);
これを実行すると、コンソールにエラーは表示されません。私は、コールバックの主な目的の1つであるgetTable関数でテーブル配列が完成する前にuseTable関数が実行されたように見えます。この配列を取る前に非同期コードが実行されるのを待ちます。それを別の関数に渡します。
getTable関数のテーブル配列が完全に生成されてからuseTable関数が実行されることを確認するにはどうすればよいですか?