Angular + Firebase中的snapshotChanges列表中的无限调用

时间:2018-08-30 11:10:22

标签: javascript angular firebase angularfire2

我正在使用Angular 4 + Ionic + Firebase构建一个应用程序。

我有一个可观察到的快照更改,可用来向用户显示数据列表,一切正常。

现在,我需要在每次迭代中检查一些内容,以便在模板的snapshotChanges循环内调用一个函数。

我在此功能内添加了console.log,以检查是否正在调用该函数,并且我发现该函数永不停止被调用,我担心这是否会导致我的APP中的内存/性能问题。

由于SnapshotChanges是可观察的并且我已订阅它,也许这是正常的行为,但是我对可观察的还没有太多经验,所以我不确定。

这是snapshotChanges函数:

this.feedService.getFeed().snapshotChanges().map(changes => {
  return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
}).subscribe(fl => {
  this.feedList = fl.sort((function (a, b) { return b.date - a.date; }));
});

这是html模板,每个迭代中都有函数调用:

<ion-icon [name]="isFavourite(item)"></ion-icon>

在此isFavourite函数中,我有console.log在控制台中不停地打印:

console

0 个答案:

没有答案