我正在调用一个异步函数,该函数从表中检索单行,然后增加该行中的一个值。
我创建了一个异步函数来执行此操作,因为我需要在我的程序中多次执行此操作。
我遇到的问题是函数正常工作(获取值并增加数字),但调用函数接收到“未定义”作为返回结果。
我承认我对 promise 不熟悉,并且才刚刚开始处理它们。
这是获取值并递增计数器的代码。
getCallNumber = async (officeId) => {
const sqlGet = `SELECT CALL_YEAR, CALL_NUM FROM Numbers WHERE OFFICE_ID = '${officeId}';`;
const sqlPut = `UPDATE Numbers SET CALL_NUM = CALL_NUM + 1 WHERE OFFICE_ID = '${officeId}';`;
await models.sequelize.transaction(async transaction => {
try {
const num = await models.sequelize.query(sqlGet, { type: models.Sequelize.QueryTypes.SELECT, transaction, raw: true },)
await models.sequelize.query(sqlPut, { type: models.Sequelize.QueryTypes.UPDATE, transaction, raw: true },)
console.log("Call Number retrieved and incremented");
console.log(num);
return num;
} catch (error) {
transaction.rollback();
console.error(error);
throw `TRANSACTION_ERROR`;
}
});
}
我可以看到输出说:
Call Number retrieved and incremented
[ { CALL_YEAR: 20, CALL_NUM: 7189 } ]
调用函数如下所示:
getCallNumber(calldata.OFFICE_ID).then((callnum) => {
console.log(callnum);
输出为:
undefined
任何帮助将不胜感激。