无法访问nodejs中相同类中的函数

时间:2019-03-04 14:23:11

标签: javascript node.js class

我有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”

0 个答案:

没有答案