因此,我编写了一个函数来处理sqlite3
数据库run
命令。从我读到的sqlite3
是异步的,我需要将查询包装在Promise中。但是,当我使用new sqlite3.Database('UsersDb'), 'BEGIN TRANSACTION', []
运行此代码时,首先进入控制台消息"DEBUG: RunSql some code"
,然后进入'DEBUG: OKKK'
。我不明白为什么,我觉得消息的顺序应该颠倒,这就是使用诺言的重点。
我已经为此战斗了几个小时,我不知道为什么它不起作用。
// Takes database, sql command and parameters returns boolean informing about success
function sqlCmdRun(database, sql, parms) {
let sqlCmd = new Promise((resolve, reject) => {
database.run(sql, parms, function (err) {
if(err) {
console.log(err.message);
reject();
}
resolve();
});
});
sqlCmd
.then(function () {
console.log("DEBUG: OKKK")
}).catch(function () {
console.log("DEBUG: ERROR EXECUTING sql:" + sql)
});
console.log("DEBUG: RunSql some code")
}