не может получить ценность от обещания при отступлении - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть функция, которая будет получать сумму данных за определенный период

  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}`))
})

но когда я запускаю его, мой результат [обещание объекта]. Это почему?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы должны обработать records[0].sum в этой функции обратного вызова. Если вы действительно хотите использовать это, используйте ниже

.then(records => { return records[0].sum })
.then(res => { // your sum here })
.catch(error => { cb(new Error(Print failed: ${error})) })
0 голосов
/ 03 сентября 2018

Вам нужно подождать, пока не закончится обещание:

  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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...