Бесконечный вызов в списке snapshotChanges в Angular + Firebase - PullRequest
0 голосов
/ 30 августа 2018

Я создаю приложение с 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, который печатается в консоли без остановки:

console

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...