0
配列のデータをdb.get(...) => {...}
から保存しようとしていますが、空の配列を取得するたびにスコープがあるか、メソッドdb.get(...) => {...}
であるとわかりません。これを解決するのを手伝ってください。私の主な目標はノードのsqlite3パッケージの結果を保存する
const sqlite3 = require('sqlite3');
let db = new sqlite3.Database('./ProblemsForPatan.db', sqlite3.OPEN_READONLY);
let sql = 'SELECT * FROM Problems';
db.all(sql, [], (err, rows) => {
rows.forEach((rowQuestion) => {
let arrayWithQuestionsId = _.split(rowQuestion.problem_questions_id, ',')
var arrayOfAnswers = []
arrayWithQuestionsId.forEach((id) => {
let sql = `SELECT * FROM QuestionsAndAnswersOfProblems WHERE question_id = ?`
db.get(sql, [id], (err, rowAnswer) => {
console.log(rowAnswer) // Object
arrayOfAnswers.push(rowAnswer)
}) // db.get(...)
console.log(arrayOfAnswers) // []
}) // arrayWithQuestionsId.forEach(...)
rowQuestion.answer = arrayOfAsnwers;
}) // rows.forEach(...)
console.log(rows) // [objects with 'answer': []]
}) // db.all(...)
はそれがrowQuestion
オブジェクトを取得し、答えをフェッチするdb.get()
へのあなたの呼び出しは、あなたのことを意味し、非同期である代わりにrowQuestion
answer: [empty]
と