К счастью для нас, в Angular 2/4 есть элегантный способ выполнить несколько HTTP-запросов и дождаться их завершения.Давайте напишем пример кода для этого сценария.Все, что нам нужно, это два класса.Служба REST, в которой мы инкапсулируем методы HTTP-запросов и компонент, который должен использовать данные бэкэнда.
import {Component, OnInit} from '@angular/core';
import {RestService} from "../rest.service";
@Component({
selector: 'app-demo',
templateUrl: './demo.component.html',
styleUrls: ['./demo.component.css']
})
export class DemoComponent implements OnInit {
dataFromRequest1: any; // data from url 1
dataFromRequest2: any; // data from url 2
constructor(private restService: RestService) {
}
ngOnInit() {
this.restService.getDataFromTwoResources().subscribe(responseList => {
/*
The response list is an array. In order to access data from each individual
request, you need to use an index.
*/
this.dataFromRequest1 = responseList[0];
this.dataFromRequest2 = responseList[1];
});
}
}
Примечание. Этот метод можно использовать для сбора запросов с нескольких серверов или с одного и того же сервера.Все, что вам нужно знать, это URL-адреса ресурсов.