I have 2 methods and want to call one method in the other method. but I get an exception
(node:17364) UnhandledPromiseRejectionWarning: ReferenceError: GetVouchers is not defined
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;
as can bee seen, I call GetVouchers() method in AddNewVoucher method after I've created a voucher. I believe that it is some how related with Promise but I could not solve.
and I call AddNewVoucher as follow
var voucherRepository = new VoucherRepository();
return voucherRepository.AddNewVoucher(newVoucher);
PS: I can call GetVouchers alone and it works..
return voucherRepository.GetVouchers();
Update: I've already tried this keyword but I get the same error.
let vouchers =await this.GetVouchers();//router.getVouchers();
(node:16364) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'GetVouchers' of undefined