以下代码是通过减去支付金额的实际费用来获得到期金额。我得到的值返回为null而不是差异。当我为db.XXX.findOne添加返回时,我得到错误为“无效值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;
}
答案 0 :(得分:0)
简单地从您的承诺(您的Db电话)返回。在您的代码中,在从db返回的结果之前返回due
的值。阅读promises和异步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;
});
}