Несколько HTTP-запросов в машинописи
/* Это приложение с угловым машинописным текстом, и UseCase: OnNgInit должен последовательно выполнять 2 действия. 1. Получите несколько DTO с Сервера с соответствующими HTTP-запросами. 2. Передайте управление методу (только после получения всех данных из вышеприведенного шага).
Challenge:
How to fire multiple HTTP requests in angular-typescript application where there is not relation between the requests(one request is not depend on the previous request results) but has to fired only after getting the complete data from the preceding request? */
Eg:
req1: retrieveX();
req2: retrieveY();
req3: retrieveZ();
OnNgInit(){
x = requestX();
y = requestY();
z = requestZ();
mainFunction(x,y,z);
}
1 ответ
Вы можете добиться этого, используя оператор RXJS forkjoin
import 'rxjs/add/observable/forkJoin';
let observableBatch = [];
observableBatch.push(requestX());
observableBatch.push(requestY());
observableBatch.push(requestZ());
return Observable.forkJoin(observableBatch).subscribe((result)=>{
this.mainFunction(result[0],result[1],result[2]);
});