node-sqlite3とjavascriptを使って以下のようなコードを書きました。
データを保存する機能は作れたのですが、データを取得してきて、memosという配列が正しい値になりません。
pushはできているのですが、db.serialize
が非同期で実行されてしまうため、console.log(memos)が先に実行されてしまい、空配列になるようです。
javascript
1const sqlite3 = require('sqlite3') 2const db = new sqlite3.Database('./memo.db') 3 4const memos = [] 5 6db.serialize(() => { 7 db.all('select * from memos', (_err, rows) => { 8 rows.forEach(row => { 9 memos.push(row) 10 }) 11 }) 12}) 13console.log(memos)
db.serialize
の外側でmemosを色々自由にいじって処理をしたいのですが、どうすればいいでしょうか?
(内側でmemosの中身が更新されているのは確認済みです)
async awaitやPromiseを使って試してみたのですがうまくいきません。
お手数ですがアドバイス頂けると幸いです。