お世話になっております。
Monacaにて、SQLiteプラグインでタブレット上のSQLiteを扱う際、SQLite操作部分を別関数として呼び出し、終了後元の関数に戻して次の処理を進めていけるように同期処理を行いたいです。
そこで、下記コードを書いたのですが、思うような結果となりませんでした。
呼び出し元
javascript
1async function getTable_Click() { 2 console.log('データ取得前'); 3 await getTable(); 4 console.log('データ取得後'); 5} 6
呼び出し先
javascript
1 2async function getTable() { 3 const promise = await db.executeSql("SELECT * FROM sqlite_master WHERE TYPE='table'", [], function(rs) { 4 //取得したデータを表示 5 for(var i = 0; i < rs.rows.length; i++) { 6 const sqlite_master = rs.rows.item(i); 7 console.log("sqlite_master" + "(" + i + ")" + sqlite_master.name); 8 } 9 }, function(error){ 10 console.log(error.code + ' : ' + error.message ); 11 }); 12 console.log(promise); 13}
結果
データ取得前
undefined
データ取得後
sqlite_master(0)table1
sqlite_master(1)table2
sqlite_master(2)table3
sqlite_master(3)table4
sqlite_master(4)table5
promiseの内容が「undefined」となっているため、promiseとdb.executeSqlの書き方が上手くないと言う事は理解出来るのですが、
どのように書き直せば良いのかが分かりませんでした。
何がおかしいのか、ご指摘いただけると助かります。
以上、よろしくお願いします。
あなたの回答
tips
プレビュー