我有2个方法,想在另一个方法中调用一个方法。但我有一个例外
(节点:17364)UnhandledPromiseRejectionWarning:ReferenceError:未定义GetVouchers
class VoucherRepository
{
AddNewVoucher(newVoucher) {
return new Promise(function(resolve, reject) {
// ...
DBModel.Voucher.create(newVoucher).then((result)=>{ // when it completed
(async function(){
let vouchers =await GetVouchers();
resolve(vouchers);
})();
});
});
}
async GetVouchers()
{
console.log('getVouchers');
return new Promise(function(resolve, reject) {
DBModel.Voucher.find({}, function(err, result) {
if (err) throw err;
var voucherList=[];
// .....
resolve(voucherList);
});
});
}
}
module.exports = VoucherRepository;
可以看到,创建凭证后,我在AddNewVoucher方法中调用GetVouchers()方法。我相信这与Promise有一定的联系,但我无法解决。
然后我按如下方式致电AddNewVoucher
var voucherRepository = new VoucherRepository();
return voucherRepository.AddNewVoucher(newVoucher);
PS:我可以单独打电话给GetVouchers,它可以工作。.
return voucherRepository.GetVouchers();
更新:我已经尝试过使用此关键字,但遇到相同的错误。
let vouchers =await this.GetVouchers();//router.getVouchers();
(节点:16364)UnhandledPromiseRejectionWarning:TypeError:无法读取 未定义的属性“ GetVouchers”