node.js, mySQLで同期処理をしたい
Q&A
Closed
解決したいこと
データベースから取得したデータを処理したい。
発生している問題
ソースコードの一番下のconsole.logでqueryTextにデータが何も入っていない。
該当するソースコード
var queryText = [];
{
connection.query(
'SELECT problem_id FROM problem WHERE problem_id LIKE "%IT%" ORDER BY RAND() LIMIT 25',
(error, results) => {
var id = results;
//console.log(id);
for (var i = 0; i <= 24; i++) {
var problemid = id[i];
//console.log(problemid);
connection.query(
'SELECT * FROM problem WHERE problem_id = ?',
[problemid.problem_id],
(error, results) => {
queryText.push(results[0].problem_text);
//console.log(results[0].problem_text);
}
)
connection.query(
'SELECT * FROM choice WHERE problem_id = ?',
[problemid.problem_id],
(error, results) => {
//console.log(results);
}
)
}
}
);
}
console.log(queryText);
connection.queryが非同期処理なのは理解しました。
ですが、同期処理でデータベースからデータを取り出す方法が分かりません。
かなり行き詰まっているので助けてください。
1