Я новичок в Angular, поэтому мне нужна помощь. Моя проблема заключается в том, чтобы позвонить по http get. Я пользуюсь сервисом. Это мой первый get
.
Мой первый Сервис
getFirstData() { return this.http.get<FirstDataResults ('http://myurl.com/api/Classes/ads', httpOptions);
Файл моего компонента TS
this.data.getFirstData().subscribe(
data => {
this.firsobjects = data.results;
},
err => console.error(err),
() => this.getComplementData(this.firstobjects)
);
До сих пор всегда все в порядке, я могу получить мои данные, и, когда все будет готово, я запускаю вторую функцию getComplementData
.
Моя вторая служба
getSecondData(idFirstObject: String) {
return this.http.get<ComplementDataResults>(
'http://myurl.com/api/Classes/Complement?' +
'where={'"idFirstObject":"' + idFirstObject + '"}',
httpOptions); }
Файл моего компонента TS
getComplementData(firsobjects) {
this.number = 0;
for (var _i = 0; _i < firsobjects.length; _i++) {
this.data.getSecondData(firsobjects[_i].id).subscribe(
(data) => {
var a = (data.results);
this.firsobjects[this.number].complements = a;
}, err => console.log('error ' + err),
() => console.log('Ok ')
);
}
}
У меня проблема с этой второй функцией, я могу получить все данные, но проблема в том, что данные дополнения не упорядочены
из того, что я понял, вызов http внутри моего цикла параллелен, поэтому async.
У меня вопрос: как я могу запустить http для синхронизации внутри цикла, чтобы получить упорядоченные результаты.
Спасибо!