【发布时间】:2020-12-06 19:23:30
【问题描述】:
var dragcar;
dragelem = { name: 'foo', rowid: '1', kw: '50', convoy: '1' };
if (dragelem.name.length > 0) {
//get dragcar
resdb.forEach((worker) => {
//find matching worker in db
if (worker.name == dragelem.name) {
//worker has no carid
if (worker.carid == null) {
dragcar = null;
} else {
dragcarid = worker.carid;
connection.query("SELECT name FROM cars WHERE carid = ?;", [dragcarid], (errdb2, resdb2) => {
//error while selecting data
if (errdb2) {
console.log(errdb2);
} else {
dragcar = resdb2[0].name;
}
})
}
}
})
}
所以如果我在循环之后记录变量,它会说它是未定义的。非常感谢您提供解决此问题的方法。
最好的问候
【问题讨论】:
-
数据库查询是异步的。在尝试记录变量之前,您是否在等待它们完成?尝试将您的
console.log放在else语句中,紧跟在dragcar = ...之后 -
好吧,我需要循环之外的值,这样我就可以用它创建一个新的数据库条目。
标签: javascript mysql loops for-loop global-variables