【发布时间】:2018-05-25 15:11:44
【问题描述】:
static listFunc() {
let funclist = [];
const queryList = "SELECT * FROM func";
mysqlModule.queryDB(database, queryList, (err, result) => {
console.log(result[0].id);
if (err) {
res.status(500).json({
"status_code": 500,
"status_message": "internal server error"
});
} else {
for (var i = 0; i < result.length; i++) {
let func = {
'id': result[i].id,
'psw': result[i].senha,
'nome': result[i].nome,
'DoB': result[i].dataNascimento,
'sexo': result[i].genero,
'morada': result[i].morada,
'permissoes': result[i].permissoes
}
funclist.push(func);
}
return funclist;
}
});
}
我创建了一个函数来为我提供数据库中的所有工作人员,然后将它们存储在 funclist 数组中。
问题是for 循环在查询之前运行。
如何仅在查询完成后运行循环?
【问题讨论】:
-
我对 JS 不是很了解,但你不能使用 Promise 等待查询返回然后进入你的循环吗?
-
我不太了解您的问题,我只看到一个查询(
mysqlModule.queryDB(database, ...),而您问题中唯一的for循环位于查询的就绪回调中。所以查询应该在for循环运行时完成。 -
我已经解决了问题,我会在几分钟后发布答案。