Когда вы находитесь внутри функции, ключевое слово this
представляет не класс, а лексическую область действия функции, попробуйте функцию стрелки (предполагается ES6, поскольку вы используете async
await
)
constructor(log, calculationService) {
this.log = log;
this.calculationService = calculationService;
}
async weeklyCronJob() {
this.log.info('Weekly CRON Job is running');
var rule = new schedule.RecurrenceRule();
var job = schedule.scheduleJob(rule, () => {
this.log.info('Weekly CRON Job Started');
});
}
Если не создать объект refrence, тогда получить доступ к классу, используя refrence,
constructor(log, calculationService) {
this.log = log;
this.calculationService = calculationService;
}
async weeklyCronJob() {
this.log.info('Weekly CRON Job is running');
var rule = new schedule.RecurrenceRule();
var that = this; // <== HERE
var job = schedule.scheduleJob(rule, function() {
that.log.info('Weekly CRON Job Started'); // <== HERE
});
}