下面的代码是通过用支付的金额减去实际费用来获得到期金额。我得到的值返回为 null 而不是差异。当我为 db.XXX.findOne 添加 return 时,我收到错误消息“无效的值 promise ”。请帮助我理解我哪里出错了
let x=getDueAmount(1,200);
const getDueAmount = (id,amountpaid) => {
let due;
db.XXX.findOne({
where:{id: id},
attributes:['fees']
}).then(feeDetail=>{
due=feeDetail.fees-amountpaid;
});
return due;
}
最佳答案
只需从您的 promise (您的 Db 调用)返回。在您的代码中,您在结果从数据库返回之前返回 due
的值。阅读 Promise 和异步 javascript
let x=getDueAmount(1,200);
const getDueAmount = (id,amountpaid) => {
return db.XXX.findOne({
where:{id: id},
attributes:['fees']
}).then(feeDetail=>{
return feeDetail.fees-amountpaid;
});
}
关于javascript - 从 Sequelize 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48629365/