Оператор
combineLatest
лучше всего использовать, когда у вас есть несколько долгоживущих observables
, которые полагаются друг на друга для некоторых вычислений или определений.Имейте в виду, что combineLatest
не будет излучать начальное значение, пока каждое наблюдаемое не выдаст хотя бы одно значение.
Вы можете взглянуть на объяснение для combineLatest
.
const x: Observable<any[]> = combineLatest(isY$, isZ$).pipe(
map([isY, isZ] => {
return [
...(isY ? [Y]: []),
...(isZ ? [Z]: [])
]
})
)
РЕДАКТИРОВАТЬ: Вы также можете использовать функцию проекта combLatest, поэтому она может быть даже более краткой, выполнив
const x: Observable<any[]> = combineLatest(isY$, isZ$, (isY, isZ) => [
...(isY ? [Y]: []),
...(isZ ? [Z]: [])
])