Zip
Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each of its input Observables.
Description
If the last parameter is a function, this function is used to compute the created value from the input values. Otherwise, an array of the input values is returned.
import { zip, of } from 'rxjs';
import { map } from 'rxjs/operators';
let age$ = of<number>(27, 25, 29);
let name$ = of<string>('Foo', 'Bar', 'Beer');
let isDev$ = of<boolean>(true, true, false);
zip(age$, name$, isDev$).pipe(
map(([age, name, isDev]) => ({ age, name, isDev })),
)
.subscribe(x => console.log(x));
// outputs
// { age: 27, name: 'Foo', isDev: true }
// { age: 25, name: 'Bar', isDev: true }
// { age: 29, name: 'Beer', isDev: false }
Example #2
public populateDependencies(): void {
const statusObservable$ = this.statusSrv.getStatusList();
const categoryObservable$ = this.categorySrv.getMyCategories(false);
const mergedObservables$ =
zip(
statusObservable$,
categoryObservable$
);
mergedObservables$
.pipe(
map(([status, categories]: [Status[], Category[]]) => {
this.status = status;
this.categories = categories;
})
).subscribe();
}
Last updated
Was this helpful?