我使用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请求的结果
答案 0 :(得分:0)
我建议您熟悉角度服务以获取数据,并使用promise而非订阅,因为它们会充分充实数据,并且promise您可以一次获取所有数据,而不是订阅正在做的数据波动。订阅仅用于通知变量或组件中是否有某些更改。整个加载完成后,就会调用Promise。