异步函数返回未定义

时间:2021-02-15 00:41:42

标签: node.js reactjs sequelize.js undefined es6-promise

我正在调用一个异步函数,该函数从表中检索单行,然后增加该行中的一个值。

我创建了一个异步函数来执行此操作,因为我需要在我的程序中多次执行此操作。

我遇到的问题是函数正常工作(获取值并增加数字),但调用函数接收到“未定义”作为返回结果。

我承认我对 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

任何帮助将不胜感激。

0 个答案:

没有答案