У меня есть следующий код, и, хоть убей, я не могу понять, почему запросы не выполняются одновременно. Я все еще новичок в RxJS и наблюдаемых, поэтому я буду очень признателен за любую помощь в улучшении кода ниже. По сути, я вызываю REST API на бэкэнде, чтобы получить данные. Затем для каждого элемента в этом массиве данных я делаю еще один запрос к другой конечной точке (следовательно, использую оператор forkJoin). Все запросы отправляются сразу, но кажется, что они выполняются один за другим, а не одновременно.
this.sites$.subscribe(data => {
// data.forEach(element => {
// this.siteCaptureMap[element.id] = new CaptureData();
// this.sitesService.getCaptureData(element.nameOrNumber, element.owner.name).subscribe(data => {
// this.siteCaptureMap[element.id].count = data.length;
// });
// });
var obs: Observable<any>[] = [];
for (var _i = 0; _i < data.length; _i++) {
this.siteCaptureMap[data[_i].id] = new CaptureData();
this.siteCaptureMap[data[_i].id].id = _i;
obs.push(this.sitesService.getCaptureData(data[_i].nameOrNumber, data[_i].owner.name));
}
forkJoin(obs).subscribe(results => {
for (var _i = 0; _i < results.length; _i++) {
this.siteCaptureMap[data[_i].id].count = results[_i].length;
}
});
this.dataSource.data = data;
this.dataSource.filteredData = data;
});
Опять же, любая помощь будет принята с благодарностью. Если мне нужно что-то уточнить или предоставить дополнительные фрагменты кода, дайте мне знать! Спасибо!