В Angular можно получить Observable с агрегированным результатом других Observable с помощью оператора combineLatest
. Оператор combineLatest
комбинирует последние значения, полученные от каждого Observable и возвращает новый Observable с результатами.
Чтобы использовать combineLatest
, необходимо импортировать его из библиотеки rxjs/operators
. Затем, вы можете вызвать combineLatest
передав ему массив Observable, из которых нужно получить результаты.
import { combineLatest } from 'rxjs/operators'; import { Observable } from 'rxjs'; // пример-демонстрация const observable1: Observable<number> = ...; // первый Observable const observable2: Observable<number> = ...; // второй Observable const observable3: Observable<number> = ...; // третий Observable const combinedObservable: Observable<number[]> = combineLatest([observable1, observable2, observable3]); combinedObservable.subscribe((result: number[]) => { console.log(result); // агрегированный результат });
В этом примере переменные observable1
, observable2
и observable3
являются исходными Observable, результаты которых вы хотите агрегировать. combineLatest
принимает массив из этих Observable и возвращает новый Observable combinedObservable
, в котором значения каждого Observable комбинируются в массив.
combinedObservable
будет излучать новый массив значений каждый раз, когда хотя бы один из исходных Observable излучит новое значение. В этом примере, когда каждый из Observable излучает новое значение, результат комбинации обновляется, и новый массив значений передается в колбэк subscribe
.
Таким образом, вы сможете получить агрегированный результат от всех исходных Observable с помощью оператора combineLatest
в Angular.