Синхронный наблюдаемый угловой - PullRequest
0 голосов
/ 20 мая 2019

Я использую API для получения информации. Однако иногда я получаю всю информацию, иногда я получаю только некоторые, а иногда они не в порядке.

getData(start: string, fin: string) {
  this.tab = [];
  var index = parseInt(start);
  this.service.getInfos(start, fin).subscribe(data => {
    data.results.forEach((element, i) => {
      var name;
      var type;
      var description;
      name = element.name;
      this.service.getInfo((index + 1).toString()).subscribe(datatype => {
        if (datatype.types.length > 1) {
          type = datatype.types[1].type.name;
        } else {
          type = datatype.types[0].type.name;
        }
      });
      this.service.getDescription((index + 1).toString()).subscribe(datades => {
        datades.flavor_text_entries.forEach(el => {
          if (el.language.name.toString() == 'en') {
            description = el.flavor_text;
          }
        });
        var value = new data(this.tab.length + 1, name, info, description);
        this.tab.push(poke);
      });
      index++;
    });
  });
}

Заранее благодарю за помощь. Я использую Observable для получения результата моего http запроса

1 Ответ

0 голосов
/ 20 мая 2019

Я предлагаю вам ознакомиться со службами angular для получения данных и использования обещаний вместо подписки, поскольку они загружают данные полностью и в обещаниях вы получаете все данные сразу, а не как колебание данных, которое выполняет подписка.Подписка предназначена только для уведомления, если есть какие-либо изменения в переменной или компоненте.Обещания вызываются, когда целое загружено.

...