首页 > 解决方案 > 如何控制台记录 Promise Sequelize 的返回值

问题描述

我正在使用 Sequelize,但无法记录承诺的价值。我正在做console.log('helooo', timekeep);,但它会打印出来Promise { <pending> }。我不知道我做得对不对。

这是我的代码:

const create = async function(req, res) {
    res.setHeader('Content-Type', 'application/json');
    let err, orders, wallet;
    let orders_info = req.body;  
    console.log('order_info : <<<<<< ' + JSON.stringify(orders_info));
    var timekeep =  Orders.findAndCountAll(
    {
        where: {
          cid : orders_info.cid,
        },      
        order: [
          ['id', 'DESC']
        ],
        limit: 1,
      }
   )
   .then(result => {
       console.log('hello', result);
       console.log(result.count);
       console.log(result.rows);
   });
   console.log('helooo',  timekeep);
}

当我记录 var 时,我会变得这样。

helooo
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined }

标签: mysqlnode.jssequelize.js

解决方案


timekeep是您从then子句返回的值,即Promise<void>,因为它没有返回任何值。

result您打印的具有console.log('hello', result);您希望从 Promise 中获得的值。


推荐阅读