当我从模板中调用一个函数时,如果这个函数的结果是异步的,那么我就会遇到一个模板冻结的问题,代码非常简单。
component.html
<div *ngFor="let value of values">
{{getCount(value)}}
</div>
component.js
ngOnInit(): void {
getValues.subscribe(values => {
this.values = values;
})
}
async getCount(value) {
let collRef = collection(this.afs, 'collection');
const q = query(collRef, where("field", "==", value));
return await getCountFromServer(q).data().count;
}
1条答案
按热度按时间2w2cym1i1#
避免调用模板中的函数。将此逻辑移到服务中,并在模板中使用结果数组。当前方法被卡住-这是因为更改检测器在循环中触发此函数。只需将console.log()添加到getCount(value)并检查结果。