Для L oop Внутри Angular Подписаться занимает слишком много времени в Ioni c 4 - PullRequest
0 голосов
/ 05 января 2020

Я создал приложение чата в Ionic4 с Firebase в качестве бэкэнда. И я дал возможность создавать группы. Поэтому моя проблема в том, что когда я пытаюсь создать новую группу, мое приложение вылетает из-за загрузки всех пользователей на странице «Создать новую группу». Вот мой код:

new-group.page.ts

ngOnInit() {
    this.group = {
      img: "./assets/img/default-group.png"
    };
    this.searchFriend = "";

    this.getData.getCurrentUser().snapshotChanges().subscribe(async (accountRes: any) => {
      let account: any = { $key: accountRes.key, ...accountRes.payload.val() };
      if (!this.groupMembers) {
        this.groupMembers = [account];
      }
    });

    this.getData.getUsers().snapshotChanges().subscribe(async (usersRes) => {
      console.log("Inside Second Subscribe");
      let c: any = [];
      c = usersRes.map(c => ({ key: c.key, ...c.payload.val() }));
      if (c.length > 0) {
        //this loops forever not just once
        for (var i = 0; i < 50; i++) {
          if (c[i].uid != this.afAuth.auth.currentUser.uid) {
            let friend = { $key: c[i].uid, ...c[i] };
            console.log("Inside For: " + i);
            this.addOrUpdateFriend(friend);
            //this.friends.push(friend);
          }
        }
      } else {
        this.friends = [];
      }
    });
  }

Так что на данный момент у меня есть 150 пользователей и для каждого пользователя, для l oop внутри моего второго цикла подписки навсегда. Есть идеи, что я тут не так делаю?

...