I am trying to run this code, but I get
Avoid referencing unbound methods which may cause unintentional scoping of `this`.eslint@typescript-eslint/unbound-method
on the this.UserLoop
and this.RoleLoop
. How can I fix this?
export default class Schedule {
constructor(guild: Discord.Guild) {
// schedule the benefits to be handed out to patrons
schedule.scheduleJob(CONFIG.CRON_every_day, this.Benefit.bind(null, guild));
}
private async Benefit(guild: Discord.Guild):Promise<void> { // every day
await Promise.all(DAO_USER.GetAllUsersInGuild(guild.id).map(this.UserLoop));
}
private async UserLoop(user: MDL_USER):Promise<void> {
const ds_user = DAO_USER.GetUserByID(user.GetID());
const roles = ds_user.GetRoles();
await Promise.all(roles.map(this.RoleLoop));
}
private async RoleLoop(role_id: string):Promise<void> {
const benefit_function = ACTIONS.mappings[role_id][CONFIG.CRON_every_day].patron_benefit;
await benefit_function(ds_user);
}
}