Typescript: итерация по массиву не работает? - PullRequest
1 голос
/ 23 апреля 2020

В моем исходном коде я получаю от http.get вызов некоторых данных. Когда я пытаюсь записать состояние каждого «формуляра» в консоли, ничего не происходит. Где моя ошибка?

fillTable(): void {
console.log('fillTable');
this.formulare = [];
if (this.ansichtAuswahl === this.ansichten.ALLE) {
  this.formularService.getAll().subscribe(formular =>
      this.formulare = formular,
    error => console.log(error));
} else {
  this.formularService.getMy().subscribe(formular =>
      this.formulare = formular,
    error => console.log(error));
}
this.formulare.forEach( (element) => {console.log(element.status); });
this.filterStatus();}

Формульный массив заполнен, потому что таблица на веб-сайте тоже заполнена, но консольного вывода нет.

1 Ответ

1 голос
/ 23 апреля 2020

Переместите forEach в блок подписки, поскольку при выполнении итерации по элементам http-запрос все еще выполняется. Наблюдаемые являются асинхронными:

  fillTable(): void {
    console.log('fillTable');
    this.formulare = [];
    if (this.ansichtAuswahl === this.ansichten.ALLE) {
      this.formularService.getAll().subscribe(formular =>
        {
          this.formulare = formular;
          this.formulare.forEach( (element) => {console.log(element.status); });
          this.filterStatus();
        },
        error => console.log(error));
    } else {
      this.formularService.getMy().subscribe(formular =>
        {
          this.formulare = formular;
          this.formulare.forEach( (element) => {console.log(element.status); });
          this.filterStatus();
        },
        error => console.log(error));
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...