javascript - 返回时无法从 promise 中获取值(value)

标签 javascript promise

我有一个函数可以获取特定时间段内的数据总和

  const cashData = db.query(`SELECT SUM (payments_log.amount_paid) FROM payments_log WHERE payments_log.payment_method = '2' AND payments_log.inserted_at BETWEEN $1 AND NOW() `, [date])
.then(records => {
  return records[0].sum
})
.catch(error => {
  cb(new Error(`Print failed: ${error}`))
})

但是当我运行它时,我的结果是[对象 promise ]。这是为什么?

最佳答案

您需要等到 promise 完成:

  const cashData = db.query(`SELECT SUM (payments_log.amount_paid) FROM payments_log WHERE payments_log.payment_method = '2' AND  payments_log.inserted_at BETWEEN $1 AND NOW() `, [date])
   .then(records => {
     return records[0].sum
 })
  .catch(error => {
    cb(new Error(`Print failed: ${error}`))
 });

 cashData.then(res => console.log(res));

Promise Docs

关于javascript - 返回时无法从 promise 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154294/

相关文章:

javascript - javascript 菜单上的事件链接可用于父链接,而不仅仅是子链接

node.js - Node 等待 Promise.all() 完全解决

javascript - 获取图片的 alt 以显示

javascript - 客户端Javascript调用Postgresql存储过程

javascript - PHP 或 JavaScript : Allow text to appear on specific page only

javascript - 如何处理 Promise 中的分支?

javascript - 为什么我的 promise 链失败了?

MySQL Node JS .then() 不是函数

javascript - js Promise 上下文中的finally 何时被调用?

javascript - js 多个悬停框在同一个框中响应