在我的代码中,我正在创建一个实现接口的新匿名类。
private service: CommandService;
this.command = new class implements Command {
execute(id: string): Promise<Result> {
const resultId: string = await this.service.getResultId();
return await this.service.getResult(resultId);
};
};
在这种情况下,访问服务的最佳方法是什么?我在想什么
const _this = this
。execute
函数。有没有更好的方法来实现这一目标?
编辑:
我知道这里已经有一个很棒的answer,但是,它没有解释如何在匿名类中访问this
。
答案 0 :(得分:0)
您从不希望将this.
分配给变量,这种做法打破了使用类的全部要点。相反,这应该是2个不同的类,并像这样将所需的值传递到“内部”类中
import { Command, CommandService, Result } from 'foo';
class MyCommand implements Command {
constructor(private readonly service: CommandService) { }
async execute(id: string): Promise<Result> {
const resultId: string = await this.service.getResultId();
return await this.service.getResult(resultId);
};
};
class ParentClass {
private readonly service: CommandService;
private readonly command = new MyCommand(this.service);
}