问题描述
所以我有这个 site_worker 表。某个工作人员可以有多个 site_id。 基本上,我正在尝试遍历 siteIds 并将它们一个一个地插入。
之后,如果没有错误,它应该返回resolve(result)。
然而,尽管 console.log("res: " + res);
被写在底部(我认为是由于异步行为?),但它似乎在 for 循环之前首先执行,因此,它返回了一个 UNDEFINED 值。
如何正确地做到这一点?
const addSiteWorker = async (workerId,siteIds,req) => {
return new Promise((resolve,reject) => {
var res;
for (var i = 0; i < siteIds.length; i++) {
req.app.db.query(`INSERT INTO site_worker (site_id,worker_id) VALUES (${siteIds[i]},${workerId})`,(err,result) => {
if (err) {
logDetails('error','ADDED SITE WORKER ERROR',err);
reject(err);
} else {
res = result;
}
});
}
console.log("res: " + res);
if (res != undefined) {
resolve(res);
}
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)