同步可观察角度

时间:2019-05-20 07:16:09

标签: angular observable synchronous

我使用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 :(得分:0)

我建议您熟悉角度服务以获取数据,并使用promise而非订阅,因为它们会充分充实数据,并且promise您可以一次获取所有数据,而不是订阅正在做的数据波动。订阅仅用于通知变量或组件中是否有某些更改。整个加载完成后,就会调用Promise。