如何解决在第一次迭代之前使用带有异步/等待NodeJS返回的for循环的beginTransaction
我正在开发一个应用程序,该应用程序将根据数据库中是否已有某个项目进行插入或更新,因此在执行实际查询之前,我需要确保其工作正常,这就是为什么要使用事务。问题在于它仅尝试循环的第一次迭代并返回connection.beginTransaction()。我正在使用以下代码,有人可以告诉我是否做错了什么。 我发布了我正在使用的代码:
connection.beginTransaction(async err => {
console.log("\nExecuting queries...");
let n = 0;
let rowCollect = [];
console.log(1)
for(const row of data) {
console.log(n)
const name = row[0] !== undefined ? row[0] : "";
await getId(name).then(async id => {
if(name === "") return await insert(row);
else {
if(id == 0) return await insert(row);
return await updateById(id,row);
}
}).then(_ => {
n++;
rowCollect.push(row);
}).catch(e => {
console.log('There was an error...');
});
};
let error = !(n==data.length);
if(error) {
console.log("rollback");
connection.rollback();
}
});
我试图使beginTransaction作为一个函数,没有它,我不知道该怎么办。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。