Я создаю приложение с Angular 4 + Ionic + Firebase.
У меня есть наблюдаемый моментальный снимок, который я использую, чтобы представить пользователю список данных, все работает хорошо.
Теперь мне нужно что-то проверять в каждой итерации, поэтому я вызываю функцию внутри цикла snapshotChanges в шаблоне.
Я добавил console.log внутри этой функции, чтобы проверить, вызывается ли функция, и я увидел, что функция никогда не перестанет вызываться, я беспокоюсь, если это вызовет проблемы с памятью / производительностью в моем приложении.
Поскольку 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, который печатается в консоли без остановки: