我编写了TypeScript代码来计算公司和见解的百分比,并在进度条中显示它们。代码如下所示:
export class InsightsComponent implements OnInit {
insights: any;
firm: Firm;
constructor(
private firmService: FirmService,
private provider: FirmProvider,
private http: HttpClient,
) {}
ngOnInit(): void {
this.provider.getInsights(this.firmService.getDomain())
.then(data => {
console.log(data);
this.insights = data;
});
this.provider.getCurrent(this.firmService.getDomain())
.then(data => {
this.firm = data;
});
}
calcInvoiced = (firm: Firm, insights: number) => {
((this.firm / this.insights) * 100).toFixed(2);
}
}
你能给我一些关于如何优化和改进这段代码的反馈吗?
2条答案
按热度按时间rjee0c151#
您需要将算术运算赋给一个变量,或者至少返回结果。
this.firm / this.insights
也会是一个问题,因为这个.firm不是一个数字。x0fgdtte2#
你基本上有不同的选择来简化你的代码:
1.如果不需要变量“insights”和“firm”,而只需要派生值,那么可以定义一个新的promise,并在模板中使用
async
操作符。这将导致在init上进行一次计算。1.如果还需要其他变量,我建议您直接从服务返回可观察变量,将其存储在属性中,并使用rxjs(https://www.learnrxjs.io/learn-rxjs/operators/combination/combinelatest)中的
combineLatest
操作符来服务invoiced
变量。您还可以使用async
管道来使用这些值。