Функции службы данных являются асинхронными, поэтому вам необходимо запускать их асинхронно. Поскольку getOrder
не зависит от результата sendGetRequest
, вы можете запустить их параллельно, используя forkJoin
.
Они будут выполнены, и подписка будет запущена только после завершения обоих.
ngOnInit(): void {
forkJoin({
getRequest: this.dataService.sendGetRequest(),
order: this.dataService.getOrder(+this.orderId)
}).subscribe(result => {
this.orderInfoList = result.getRequest;
this.order = result.order;
console.log("array of depots "+ this.orderInfoList.depots[1].name);
console.log("length of depots "+ this.orderInfoList.depots.length);
console.log("order " + this.order.orderNumber);
});
}
forkJoin
также принимает массив наблюдаемых:
forkJoin([
this.dataService.sendGetRequest(),
this.dataService.getOrder(+this.orderId)
]).subscribe(result => {
this.orderInfoList = result[0];
this.order = result[1];
});