firebase 模板冻结中的Angularfire等待功能-应该如何完成?

mcvgt66p  于 2022-12-19  发布在  Angular
关注(0)|答案(1)|浏览(131)

当我从模板中调用一个函数时,如果这个函数的结果是异步的,那么我就会遇到一个模板冻结的问题,代码非常简单。
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;
}
2w2cym1i

2w2cym1i1#

避免调用模板中的函数。将此逻辑移到服务中,并在模板中使用结果数组。当前方法被卡住-这是因为更改检测器在循环中触发此函数。只需将console.log()添加到getCount(value)并检查结果。

相关问题